File: ClangBinding.cc

package info (click to toggle)
aspectc%2B%2B 1%3A2.1-2~bpo8.0
  • links: PTS, VCS
  • area: main
  • in suites: jessie-backports
  • size: 16,212 kB
  • sloc: cpp: 107,361; ansic: 7,644; sh: 2,188; makefile: 1,290; pascal: 634; python: 402; xml: 349
file content (131 lines) | stat: -rw-r--r-- 7,130 bytes parent folder | download | duplicates (2)
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);
}