Changes in src/SymTab/Mangler.h [0e73845:d7d9a60]
- File:
-
- 1 edited
-
src/SymTab/Mangler.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.h
r0e73845 rd7d9a60 24 24 #include "SynTree/Visitor.h" // for Visitor, maybeAccept 25 25 26 // https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling27 // The CFA name mangling scheme is based closely on the itanium C++ name mangling scheme, with the following key differences:28 // * Variable names are also mangled to include type information, not just functions29 // * CFA does not have template expansion, so the rules for function specialization do not apply.30 // * CFA instead has to handle type parameters and assertion parameters.31 // * Currently name compression is not implemented.32 33 26 namespace SymTab { 34 27 namespace Mangler { … … 40 33 /// Mangle ignoring generic type parameters 41 34 std::string mangleConcrete( Type* ty ); 42 43 namespace Encoding {44 extern const std::string manglePrefix;45 extern const std::string basicTypes[];46 extern const std::map<int, std::string> qualifiers;47 48 extern const std::string void_t;49 extern const std::string zero;50 extern const std::string one;51 52 extern const std::string function;53 extern const std::string tuple;54 extern const std::string pointer;55 extern const std::string array;56 extern const std::string qualifiedTypeStart;57 extern const std::string qualifiedTypeEnd;58 59 extern const std::string forall;60 extern const std::string typeVariables[];61 62 extern const std::string struct_t;63 extern const std::string union_t;64 extern const std::string enum_t;65 extern const std::string type;66 67 extern const std::string autogen;68 extern const std::string intrinsic;69 };70 35 } // Mangler 71 36 } // SymTab 72 73 extern "C" {74 char * cforall_demangle(const char *, int);75 }76 37 77 38 // Local Variables: //
Note:
See TracChangeset
for help on using the changeset viewer.