#ifndef CLANG_CODEGEN_CGEXCEPTION_H
#define CLANG_CODEGEN_CGEXCEPTION_H
#include "llvm/ADT/StringRef.h"
namespace clang {
class LangOptions;
namespace CodeGen {
class EHPersonality {
llvm::StringRef PersonalityFn;
llvm::StringRef CatchallRethrowFn;
EHPersonality(llvm::StringRef PersonalityFn,
llvm::StringRef CatchallRethrowFn = llvm::StringRef())
: PersonalityFn(PersonalityFn),
CatchallRethrowFn(CatchallRethrowFn) {}
public:
static const EHPersonality &get(const LangOptions &Lang);
static const EHPersonality GNU_C;
static const EHPersonality GNU_C_SJLJ;
static const EHPersonality GNU_ObjC;
static const EHPersonality GNU_ObjCXX;
static const EHPersonality NeXT_ObjC;
static const EHPersonality GNU_CPlusPlus;
static const EHPersonality GNU_CPlusPlus_SJLJ;
llvm::StringRef getPersonalityFnName() const { return PersonalityFn; }
llvm::StringRef getCatchallRethrowFnName() const { return CatchallRethrowFn; }
};
}
}
#endif