summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/Mangle.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Add mangleSubstitution/addSubstitution variants that take a NamedDecl.Anders Carlsson2009-09-171-3/+20
| | | | llvm-svn: 82116
* When mangling function template specialization, mangle the type encoding of ↵Anders Carlsson2009-09-171-5/+9
| | | | | | the original function template. Also, port mangle.cpp and function-template-specialization.cpp over to using FileCheck. llvm-svn: 82114
* Add new functions to the mangler for the <unscoped-name> and ↵Anders Carlsson2009-09-171-8/+25
| | | | | | <unscoped-template-name> productions. llvm-svn: 82113
* Add basic substitution to the C++ mangler. It currently only looks at types.Anders Carlsson2009-09-171-8/+72
| | | | llvm-svn: 82102
* We can't have ctors in the vtable (right Doug?) :-)Mike Stump2009-09-121-4/+0
| | | | llvm-svn: 81619
* Remove unnecessary ASTContext parameters from isMain and isExternCDouglas Gregor2009-09-121-1/+1
| | | | llvm-svn: 81589
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-61/+60
| | | | llvm-svn: 81346
* Refine vcall offsets. Cleanups. WIP.Mike Stump2009-09-071-16/+17
| | | | llvm-svn: 81143
* Overhaul the mangler to use a visitor pattern, at least for types. We can ↵John McCall2009-09-051-96/+134
| | | | | | | | | | | safely ignore non-canonical type classes, but apparently we need to know how to mangle dependent names. The missing cases are much more obvious now. llvm-svn: 81070
* Install thunks later to fixup overrides. Track space taken by vbaseMike Stump2009-09-051-21/+16
| | | | | | offsets better for thunk refinements. Cleanups. WIP. llvm-svn: 81067
* Start emitting ElaboratedTypes in C++ mode. Support the effort in variousJohn McCall2009-09-051-0/+3
| | | | | | | | ways: remove elab types during desugaring, enhance pretty-printing to allow tags to be suppressed without suppressing scopes, look through elab types when associating a typedef name with an anonymous record type. llvm-svn: 81065
* Add mangling for covariant thunks.Mike Stump2009-09-021-6/+48
| | | | llvm-svn: 80747
* Shorten name.Mike Stump2009-09-021-7/+6
| | | | llvm-svn: 80744
* Add mangling for thunks.Mike Stump2009-09-021-22/+72
| | | | llvm-svn: 80743
* Disable all recognition of main() in -ffreestanding. Addresses bug #4720.John McCall2009-08-151-1/+1
| | | | llvm-svn: 79070
* Add beginnigs of rtti generation, wire up more of -fno-exceptions.Mike Stump2009-07-311-0/+15
| | | | llvm-svn: 77751
* Add code to setup the vtable pointer in the constructor. Work in progress.Mike Stump2009-07-311-4/+16
| | | | llvm-svn: 77699
* Fix a couple recent ABI regressions noticed during code review (fallout from ↵Steve Naroff2009-07-221-2/+2
| | | | | | | | the ObjC type system rewrite). It's unfortunate that the mangling includes the low-level structs. Nevertheless, we need this for binary compatibility with GCC. llvm-svn: 76755
* Implement the ObjC pseudo built-in types as clang "BuiltinType's". I say ↵Steve Naroff2009-07-151-0/+2
| | | | | | | | | | | | pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective). This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-). This patch also adds Type::isObjCBuiltinType(). This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small. llvm-svn: 75808
* Basic support for C++0x unicode types. Support for literals will follow in ↵Alisdair Meredith2009-07-141-2/+4
| | | | | | an incremental patch llvm-svn: 75622
* This patch includes a conceptually simple, but very intrusive/pervasive change. Steve Naroff2009-07-101-0/+5
| | | | | | | | | | | | The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches. This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic. By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time. Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks. llvm-svn: 75314
* Remove the ASTContext parameter from the attribute-related methods of Decl.Argyrios Kyrtzidis2009-06-301-2/+2
| | | | | | | | | The implementations of these methods can Use Decl::getASTContext() to get the ASTContext. This commit touches a lot of files since call sites for these methods are everywhere. I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it. llvm-svn: 74501
* Improve code generation for function template specializations:Douglas Gregor2009-06-291-1/+29
| | | | | | | | | | | | | | | | - Track implicit instantiations vs. the not-yet-supported explicit specializations - Give implicit instantiations of function templates (and member functions of class templates) linkonce_odr linkage. - Improve name mangling for function template specializations, including the template arguments of the instantiation and the return type of the function. Note that our name-mangling is improved, but not correct: we still don't mangle substitutions, although the manglings we produce can be demangled. llvm-svn: 74466
* Implement enough of the 'auto' keyword so we can claim to support N2546.Anders Carlsson2009-06-261-0/+3
| | | | llvm-svn: 74307
* Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.Douglas Gregor2009-06-181-2/+2
| | | | llvm-svn: 73702
* Simplify mangleFunctionDecl by unnesting a crazy condition. This fixesChris Lattner2009-06-131-13/+14
| | | | | | | the check for extern "c" system headers, which should prevent functiondecls from being mangled. llvm-svn: 73311
* Don't try to call getFileCharacteristic if the function declaration has an ↵Anders Carlsson2009-05-311-2/+3
| | | | | | invalid source location (as is the case for the global allocation functions. llvm-svn: 72671
* Add support for converting member pointer types to LLVM types. Also mangle ↵Anders Carlsson2009-05-171-1/+6
| | | | | | pointer to member functions correctly and add tests. llvm-svn: 71981
* Reflow some comments.Mike Stump2009-05-161-2/+2
| | | | llvm-svn: 71937
OpenPOWER on IntegriCloud