1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
#include "clang/Basic/Version.h"
#if CLANG_VERSION_MAJOR == 3 && CLANG_VERSION_MINOR == 4 && !defined(CLANG_VERSION_PATCHLEVEL)
#elif CLANG_VERSION_MAJOR == 3 && CLANG_VERSION_MINOR == 4 && CLANG_VERSION_PATCHLEVEL == 2
#elif CLANG_VERSION_MAJOR == 3 && CLANG_VERSION_MINOR == 6 && CLANG_VERSION_PATCHLEVEL == 2
#elif CLANG_VERSION_MAJOR == 3 && CLANG_VERSION_MINOR == 7 && CLANG_VERSION_PATCHLEVEL == 1
#elif CLANG_VERSION_MAJOR == 3 && CLANG_VERSION_MINOR == 8 && CLANG_VERSION_PATCHLEVEL == 0
#else
#warning "Invalid clang version used! Only 3.4, 3.4.2, 3.6.2, 3.7.1, and 3.8.0 are supported by this code."
#endif
#include "ClangIntroSema.h"
#include "ClangWeaverBase.h"
using namespace clang;
#ifdef __APPLE__
#define WRAP(x) x
#else
#define WRAP(x) __wrap_##x
#endif
extern "C" void WRAP(_ZN5clang4Sema31ActOnStartCXXMemberDeclarationsEPNS_5ScopeEPNS_4DeclENS_14SourceLocationEbS5_) (
Sema &that, Scope *S, Decl *TagDecl, SourceLocation FinalLoc, bool IsFinalSpelledSealed, SourceLocation LBraceLoc);
void WRAP(_ZN5clang4Sema31ActOnStartCXXMemberDeclarationsEPNS_5ScopeEPNS_4DeclENS_14SourceLocationEbS5_) (
Sema &that, Scope *S, Decl *TagDecl, SourceLocation FinalLoc, bool IsFinalSpelledSealed, SourceLocation LBraceLoc) {
ClangIntroSema &sema = (ClangIntroSema&)that;
sema.ActOnStartCXXMemberDeclarations(S, TagDecl, FinalLoc, IsFinalSpelledSealed,
LBraceLoc);
}
extern "C" void __real__ZN5clang4Sema31ActOnStartCXXMemberDeclarationsEPNS_5ScopeEPNS_4DeclENS_14SourceLocationEbS5_ (
clang::Sema &that, clang::Scope *S, clang::Decl *TagDecl, clang::SourceLocation FinalLoc,
bool IsFinalSpelledSealed, clang::SourceLocation LBraceLoc);
void RealActOnStartCXXMemberDeclarations (clang::Sema &that, clang::Scope *S,
clang::Decl *TagDecl, clang::SourceLocation FinalLoc,
bool IsFinalSpelledSealed, clang::SourceLocation LBraceLoc) {
__real__ZN5clang4Sema31ActOnStartCXXMemberDeclarationsEPNS_5ScopeEPNS_4DeclENS_14SourceLocationEbS5_ (that, S, TagDecl,
FinalLoc, IsFinalSpelledSealed, LBraceLoc);
}
#if FRONTEND_CLANG < 38
extern "C" void WRAP(_ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEPPNS_16CXXBaseSpecifierEj)(
clang::Sema &that, clang::Decl *ClassDecl, clang::CXXBaseSpecifier **Bases, unsigned NumBases);
void WRAP(_ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEPPNS_16CXXBaseSpecifierEj)(
clang::Sema &that, clang::Decl *ClassDecl, clang::CXXBaseSpecifier **Bases, unsigned NumBases) {
ClangIntroSema &sema = (ClangIntroSema&)that;
sema.ActOnBaseSpecifiers (ClassDecl, Bases, NumBases);
}
extern "C" void __real__ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEPPNS_16CXXBaseSpecifierEj(
clang::Sema &sema, clang::Decl *ClassDecl, clang::CXXBaseSpecifier **Bases, unsigned NumBases);
void RealActOnBaseSpecifiers (clang::Sema &that, clang::Decl *ClassDecl,
clang::CXXBaseSpecifier **Bases, unsigned NumBases) {
__real__ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEPPNS_16CXXBaseSpecifierEj(
that, ClassDecl, Bases, NumBases);
}
#else
extern "C" void WRAP(_ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEN4llvm15MutableArrayRefIPNS_16CXXBaseSpecifierEEE)(
clang::Sema &that, clang::Decl *ClassDecl, clang::MutableArrayRef<clang::CXXBaseSpecifier *> Bases);
void WRAP(_ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEN4llvm15MutableArrayRefIPNS_16CXXBaseSpecifierEEE)(
clang::Sema &that, clang::Decl *ClassDecl, clang::MutableArrayRef<clang::CXXBaseSpecifier *> Bases) {
ClangIntroSema &sema = (ClangIntroSema&)that;
sema.ActOnBaseSpecifiers (ClassDecl, Bases);
}
extern "C" void __real__ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEN4llvm15MutableArrayRefIPNS_16CXXBaseSpecifierEEE(
clang::Sema &sema, clang::Decl *ClassDecl, clang::MutableArrayRef<clang::CXXBaseSpecifier *> Bases);
void RealActOnBaseSpecifiers (clang::Sema &that, clang::Decl *ClassDecl,
clang::MutableArrayRef<clang::CXXBaseSpecifier *> Bases) {
__real__ZN5clang4Sema19ActOnBaseSpecifiersEPNS_4DeclEN4llvm15MutableArrayRefIPNS_16CXXBaseSpecifierEEE(
that, ClassDecl, Bases);
}
#endif
WeaverBase *macro_recorder = 0;
extern "C" void __real__ZN5clang12Preprocessor3LexERNS_5TokenE(clang::Preprocessor &that, clang::Token &Result);
extern "C" void WRAP(_ZN5clang12Preprocessor3LexERNS_5TokenE)(clang::Preprocessor &that, clang::Token &Result);
void WRAP(_ZN5clang12Preprocessor3LexERNS_5TokenE)(clang::Preprocessor &that, clang::Token &Result) {
static int lex_nested = 0;
lex_nested++;
__real__ZN5clang12Preprocessor3LexERNS_5TokenE(that, Result);
lex_nested--;
if (!lex_nested && macro_recorder) {
macro_recorder->handle_token (that, Result);
}
}
extern "C" void WRAP(_ZN5clang4Sema33ActOnFinishCXXMemberSpecificationEPNS_5ScopeENS_14SourceLocationEPNS_4DeclES3_S3_PNS_13AttributeListE)(
clang::Sema &that, clang::Scope* S, clang::SourceLocation RLoc, Decl *TagDecl,
clang::SourceLocation LBrac, clang::SourceLocation RBrac, clang::AttributeList *AttrList);
void WRAP(_ZN5clang4Sema33ActOnFinishCXXMemberSpecificationEPNS_5ScopeENS_14SourceLocationEPNS_4DeclES3_S3_PNS_13AttributeListE)(
clang::Sema &that, clang::Scope* S, clang::SourceLocation RLoc, Decl *TagDecl,
clang::SourceLocation LBrac, clang::SourceLocation RBrac, clang::AttributeList *AttrList) {
ClangIntroSema &sema = (ClangIntroSema&)that;
sema.ActOnFinishCXXMemberSpecification(S, RLoc, TagDecl, LBrac, RBrac, AttrList);
}
extern "C" void __real__ZN5clang4Sema33ActOnFinishCXXMemberSpecificationEPNS_5ScopeENS_14SourceLocationEPNS_4DeclES3_S3_PNS_13AttributeListE(
clang::Sema &that, clang::Scope* S, clang::SourceLocation RLoc, Decl *TagDecl,
clang::SourceLocation LBrac, clang::SourceLocation RBrac, clang::AttributeList *AttrList);
void RealActOnFinishCXXMemberSpecification (clang::Sema &that, clang::Scope* S,
clang::SourceLocation RLoc, Decl *TagDecl, clang::SourceLocation LBrac,
clang::SourceLocation RBrac, clang::AttributeList *AttrList) {
__real__ZN5clang4Sema33ActOnFinishCXXMemberSpecificationEPNS_5ScopeENS_14SourceLocationEPNS_4DeclES3_S3_PNS_13AttributeListE(
that, S, RLoc, TagDecl, LBrac, RBrac, AttrList);
}
extern "C" void WRAP(_ZN5clang4Sema25ActOnEndOfTranslationUnitEv)(clang::Sema &that);
void WRAP(_ZN5clang4Sema25ActOnEndOfTranslationUnitEv)(clang::Sema &that) {
ClangIntroSema &sema = (ClangIntroSema&)that;
sema.ActOnEndOfTranslationUnit();
}
extern "C" void __real__ZN5clang4Sema25ActOnEndOfTranslationUnitEv(clang::Sema &that);
void RealActOnEndOfTranslationUnit(clang::Sema &that) {
__real__ZN5clang4Sema25ActOnEndOfTranslationUnitEv(that);
}
extern "C" bool WRAP(_ZN5clang4Sema19canSkipFunctionBodyEPNS_4DeclE)(clang::Sema &that, clang::Decl *D);
bool WRAP(_ZN5clang4Sema19canSkipFunctionBodyEPNS_4DeclE)(clang::Sema &that, clang::Decl *D) {
ClangIntroSema &sema = (ClangIntroSema&)that;
return sema.canSkipFunctionBody(D);
}
extern "C" bool __real__ZN5clang4Sema19canSkipFunctionBodyEPNS_4DeclE(clang::Sema &that, clang::Decl *D);
bool RealCanSkipFunctionBody(clang::Sema &that, clang::Decl *D) {
return __real__ZN5clang4Sema19canSkipFunctionBodyEPNS_4DeclE(that, D);
}
|