Changes in src/SymTab/Mangler.h [d7d9a60:90cac45]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Mangler.h
rd7d9a60 r90cac45 24 24 #include "SynTree/Visitor.h" // for Visitor, maybeAccept 25 25 26 // https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling 27 // 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 functions 29 // * 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 26 33 namespace SymTab { 27 34 namespace Mangler { … … 33 40 /// Mangle ignoring generic type parameters 34 41 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 }; 35 67 } // Mangler 36 68 } // SymTab 69 70 extern "C" { 71 char * cforall_demangle(const char *, int); 72 } 37 73 38 74 // Local Variables: //
Note:
See TracChangeset
for help on using the changeset viewer.