Ignore:
Timestamp:
Mar 24, 2016, 11:21:44 AM (9 years ago)
Author:
Aaron Moss <a3moss@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, string, with_gc
Children:
3cfe27f
Parents:
0438091
Message:

Fix Cdecl overloading bug in indexer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Indexer.cc

    r0438091 r6a57da5  
    602602                const std::string &name = decl->get_name();
    603603                std::string mangleName;
    604                 // TODO the first branch of this if is a bug-for-bug replication of Richard's code;
    605                 // it can allow C decls to hide CFA decls when they shouldn't, but the current prelude
    606                 // depends on this bug to build ... <stdlib>'s random() should be fixed to *not* hide
    607                 // <stdlib.h>'s random() before this first branch is taken out again
    608                 if ( decl->get_linkage() == LinkageSpec::C ) {
    609                         mangleName = name;
    610                 } else if ( LinkageSpec::isOverridable( decl->get_linkage() ) ) {
     604                if ( LinkageSpec::isOverridable( decl->get_linkage() ) ) {
    611605                        // mangle the name without including the appropriate suffix, so overridable routines are placed into the
    612606                        // same "bucket" as their user defined versions.
     
    624618                          // doesn't check decls that have the same manglename, and all C-linkage decls are defined to
    625619                          // have their name as their manglename, hence the error can never trigger).
    626                           // The elided code here is closer to correct, but name mangling would have to be completely
     620                          // The code here is closer to correct, but name mangling would have to be completely
    627621                          // isomorphic to C type-compatibility, which it may not be.
    628622                       
Note: See TracChangeset for help on using the changeset viewer.