summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/Mangle.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Finish off mangling for the VTT.Mike Stump2009-11-101-0/+8
| | | | llvm-svn: 86647
* Add mangling for the construction vtable.Mike Stump2009-11-101-0/+22
| | | | llvm-svn: 86643
* Always mangle functions with special names. Fixes PR5420.Anders Carlsson2009-11-071-3/+5
| | | | llvm-svn: 86350
* When looking up and adding substitutions to the substitution table, make ↵Anders Carlsson2009-11-071-0/+3
| | | | | | sure to always use the canonical declaration. With tihs change, FileCheck compiles and links but crashes during startup. llvm-svn: 86339
* Handle ParenExprs in mangleExpression.Anders Carlsson2009-11-061-0/+5
| | | | llvm-svn: 86218
* Fix thinko, mangleCXXRtti should obviously take a QualType!Anders Carlsson2009-10-301-5/+4
| | | | llvm-svn: 85565
* mangleCXXRtti obviously needs to take a type, what was I thinking...Anders Carlsson2009-10-301-5/+7
| | | | llvm-svn: 85555
* Mangle based on the declaration we're given, not the canonicalDouglas Gregor2009-10-281-1/+2
| | | | | | | | declaration, since attributes that affect mangling may have been added to subsequent declarations. However, to determine the linkage of the declaration, we need to look at the canonical declaration. Fixes PR4412. llvm-svn: 85400
* Add mangling for VTTs.Mike Stump2009-10-281-0/+7
| | | | llvm-svn: 85363
* When building types from declarators, instead of building two types (one forJohn McCall2009-10-221-1/+6
| | | | | | | | | | | | | | | | | | | | | the DeclaratorInfo, one for semantic analysis), just build a single type whose canonical type will reflect the semantic analysis (assuming the type is well-formed, of course). To make that work, make a few changes to the type system: * allow the nominal pointee type of a reference type to be a (possibly sugared) reference type. Also, preserve the original spelling of the reference type. Both of these can be ignored on canonical reference types. * Remove ObjCProtocolListType and preserve the associated source information on the various ObjC TypeLocs. Preserve the spelling of protocol lists except in the canonical form. * Preserve some level of source type structure on parameter types, but canonicalize on the canonical function type. This is still a WIP. Drops code size, makes strides towards accurate source location representation, slight (~1.7%) progression on Cocoa.h because of complexity drop. llvm-svn: 84907
* PR5218: Replace IdentifierInfo::getName with StringRef version, now that clientsDaniel Dunbar2009-10-181-1/+1
| | | | | | are updated. llvm-svn: 84447
* Move misc clients to IdentifierInfo StringRef API.Daniel Dunbar2009-10-181-4/+1
| | | | | | | | | - strcmp -> == - OS.write(II->getName() ...) -> OS << II->getNameStr() - Avoid std::string concatenation - Use getNameStr().str() when an std::string is really needed. llvm-svn: 84437
* Builtin types are subsitutable if they are qualified. Fixes PR5196.Anders Carlsson2009-10-161-1/+1
| | | | llvm-svn: 84237
* Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of ↵Anders Carlsson2009-10-111-10/+10
| | | | | | QualTypes. llvm-svn: 83793
* Mangle std::basic_ostream<char, std::char_traits<char>> as So.Anders Carlsson2009-10-081-0/+18
| | | | llvm-svn: 83557
* Mangle anonymous structs/unions correctly. Fixes PR5139.Anders Carlsson2009-10-071-3/+34
| | | | llvm-svn: 83448
* Add a MangleContext and pass it to all mangle functions. It will be used for ↵Anders Carlsson2009-10-071-20/+22
| | | | | | keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. llvm-svn: 83442
* When mangling names, always use the canonical decl. Fixes PR5144.Anders Carlsson2009-10-061-1/+1
| | | | llvm-svn: 83420
* Anonymous namespaces, sema + codegen. A lot of semantics are still broken,John McCall2009-10-011-3/+11
| | | | | | apparently because using directives aren't quite working correctly. llvm-svn: 83184
* Mangle dependent name expressions. Fixes PR5063.Anders Carlsson2009-09-271-0/+20
| | | | llvm-svn: 82915
* Use mangleTemplatePrefix when we know that we're mangling a nested template ↵Anders Carlsson2009-09-271-2/+4
| | | | | | name. llvm-svn: 82912
* Look for substitutions when mangling TypenameTypes.Anders Carlsson2009-09-271-3/+6
| | | | llvm-svn: 82885
* Better template parameter type mangling.Anders Carlsson2009-09-271-11/+18
| | | | llvm-svn: 82883
* Mangle std::basic_string<char, std::char_traits<char>, std::allocator<char> ↵Anders Carlsson2009-09-271-0/+63
| | | | | | > as Ss. llvm-svn: 82882
* Mangle ::std::basic_string as Sb.Anders Carlsson2009-09-261-0/+6
| | | | llvm-svn: 82881
* Mangle ::std::allocator as Sa.Anders Carlsson2009-09-261-11/+19
| | | | llvm-svn: 82880
* Handle substitutions in mangleTemplatePrefix.Anders Carlsson2009-09-261-1/+6
| | | | llvm-svn: 82879
* Substitute "::std::" as "St".Anders Carlsson2009-09-261-1/+22
| | | | llvm-svn: 82874
* Don't crash when trying to mangle function templates.Anders Carlsson2009-09-261-2/+2
| | | | llvm-svn: 82872
* mangleTemplatePrefix and mangleUnscopedTemplateName should take a TemplateDecl.Anders Carlsson2009-09-261-10/+9
| | | | llvm-svn: 82871
* Mangle record types as decls.Anders Carlsson2009-09-261-1/+17
| | | | llvm-svn: 82843
* Change isTemplate to return the actual template declaration.Anders Carlsson2009-09-261-5/+5
| | | | llvm-svn: 82839
* Improve mangling of typename types.Anders Carlsson2009-09-261-1/+16
| | | | llvm-svn: 82833
* Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall2009-09-241-17/+14
| | | | | | | | Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. llvm-svn: 82705
* CXXMethodDecls should always be mangled, even if they are inside an extern ↵Anders Carlsson2009-09-221-1/+4
| | | | | | "C" block. Fixes PR5017. llvm-svn: 82567
* Don't assert that linkage decls are always C++, it's not true. Fixes PR5019.Anders Carlsson2009-09-221-4/+1
| | | | llvm-svn: 82557
* Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall2009-09-211-1/+1
| | | | | | | | | | | Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. llvm-svn: 82501
* Start mangling expressions.Anders Carlsson2009-09-211-3/+41
| | | | llvm-svn: 82423
* More mangling work.Anders Carlsson2009-09-181-7/+9
| | | | llvm-svn: 82265
* Make the mangler conform even better to the grammar.Anders Carlsson2009-09-181-12/+8
| | | | llvm-svn: 82262
* More mangler mangling.Anders Carlsson2009-09-181-12/+26
| | | | llvm-svn: 82250
* Call mangleTemplatePrefix.Anders Carlsson2009-09-181-5/+7
| | | | llvm-svn: 82247
* Change manglePrefix to return early if the DC is the translation unit.Anders Carlsson2009-09-181-2/+4
| | | | llvm-svn: 82246
* More mangling goodness.Anders Carlsson2009-09-181-20/+42
| | | | llvm-svn: 82193
* Handle mangling of TemplateSpecializationType.Anders Carlsson2009-09-181-7/+58
| | | | llvm-svn: 82189
* Ignore extern "C++" { } when mangling.Anders Carlsson2009-09-171-3/+9
| | | | llvm-svn: 82146
* Revert r82123 for now.Anders Carlsson2009-09-171-21/+14
| | | | llvm-svn: 82125
* Treat an unqualified RecordType as a RecordDecl when substituting.Anders Carlsson2009-09-171-14/+21
| | | | llvm-svn: 82123
* Substitution for prefixes.Anders Carlsson2009-09-171-3/+12
| | | | llvm-svn: 82122
* Substitute unscoped template names.Anders Carlsson2009-09-171-0/+4
| | | | llvm-svn: 82119
OpenPOWER on IntegriCloud