Changeset 7804e2a


Ignore:
Timestamp:
Aug 2, 2018, 5:15:21 PM (6 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
c20fafd
Parents:
4285544e
Message:

Minor updates to name mangling to eliminate overlaps

Location:
src/SymTab
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Mangler.cc

    r4285544e r7804e2a  
    144144                        void Mangler::postvisit( VoidType * voidType ) {
    145145                                printQualifiers( voidType );
    146                                 mangleName << Encoding::voidType;
     146                                mangleName << Encoding::void_t;
    147147                        }
    148148
     
    195195                                inFunctionType = true;
    196196                                std::list< Type* > returnTypes = getTypes( functionType->returnVals );
    197                                 if (returnTypes.empty()) mangleName << Encoding::voidType;
     197                                if (returnTypes.empty()) mangleName << Encoding::void_t;
    198198                                else acceptAll( returnTypes, *visitor );
    199199                                mangleName << "_";
     
    223223
    224224                        void Mangler::postvisit( StructInstType * aggregateUseType ) {
    225                                 mangleRef( aggregateUseType, "s" );
     225                                mangleRef( aggregateUseType, Encoding::struct_t );
    226226                        }
    227227
    228228                        void Mangler::postvisit( UnionInstType * aggregateUseType ) {
    229                                 mangleRef( aggregateUseType, "u" );
     229                                mangleRef( aggregateUseType, Encoding::union_t );
    230230                        }
    231231
    232232                        void Mangler::postvisit( EnumInstType * aggregateUseType ) {
    233                                 mangleRef( aggregateUseType, "e" );
     233                                mangleRef( aggregateUseType, Encoding::enum_t );
    234234                        }
    235235
  • src/SymTab/Mangler.h

    r4285544e r7804e2a  
    4646                        extern const std::map<int, std::string> qualifiers;
    4747
    48                         extern const std::string voidType;
     48                        extern const std::string void_t;
    4949                        extern const std::string zero;
    5050                        extern const std::string one;
     
    5656                        extern const std::string qualifiedTypeStart;
    5757                        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;
    5862
    5963                        extern const std::string autogen;
  • src/SymTab/ManglerCommon.cc

    r4285544e r7804e2a  
    6464
    6565                        const std::map<int, std::string> qualifiers = {
    66                                 { Type::Const, "C" },
     66                                { Type::Const, "K" },
    6767                                { Type::Volatile, "V" },
    6868                                { Type::Atomic, "A" }, // A = Atomic, A0 = Array and forall parameter...
    69                                 { Type::Mutex, "M" },
     69                                { Type::Mutex, "X" },
    7070                                { Type::Lvalue, "L" },
    7171                        };
    7272
    73                         const std::string voidType = "v";
     73                        const std::string void_t = "v";
    7474                        const std::string zero = "Z";
    7575                        const std::string one = "O";
     
    8282                        const std::string qualifiedTypeEnd = "E";
    8383
     84                        const std::string struct_t = "S";
     85                        const std::string union_t = "U";
     86                        const std::string enum_t = "M";
     87
    8488                        const std::string autogen = "autogen__";
    8589                        const std::string intrinsic = "intrinsic__";
Note: See TracChangeset for help on using the changeset viewer.