Changes in src/SymTab/Mangler.h [d8cb7df:d7d9a60]
- File:
-
- 1 edited
-
src/SymTab/Mangler.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.h
rd8cb7df 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 struct_t;60 extern const std::string union_t;61 extern const std::string enum_t;62 extern const std::string type;63 64 extern const std::string autogen;65 extern const std::string intrinsic;66 };67 35 } // Mangler 68 36 } // SymTab 69 70 extern "C" {71 std::string cforall_demangle(const std::string &);72 }73 37 74 38 // Local Variables: //
Note:
See TracChangeset
for help on using the changeset viewer.