aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/Mangle.cpp
AgeCommit message (Collapse)Author
2009-10-11Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of ↵Anders Carlsson
QualTypes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83793 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08Mangle std::basic_ostream<char, std::char_traits<char>> as So.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83557 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07Mangle anonymous structs/unions correctly. Fixes PR5139.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07Add a MangleContext and pass it to all mangle functions. It will be used for ↵Anders Carlsson
keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83442 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06When mangling names, always use the canonical decl. Fixes PR5144.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01Anonymous namespaces, sema + codegen. A lot of semantics are still broken,John McCall
apparently because using directives aren't quite working correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83184 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Mangle dependent name expressions. Fixes PR5063.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Use mangleTemplatePrefix when we know that we're mangling a nested template ↵Anders Carlsson
name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Look for substitutions when mangling TypenameTypes.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Better template parameter type mangling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Mangle std::basic_string<char, std::char_traits<char>, std::allocator<char> ↵Anders Carlsson
> as Ss. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Mangle ::std::basic_string as Sb.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82881 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Mangle ::std::allocator as Sa.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82880 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Handle substitutions in mangleTemplatePrefix.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82879 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Substitute "::std::" as "St".Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82874 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Don't crash when trying to mangle function templates.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26mangleTemplatePrefix and mangleUnscopedTemplateName should take a TemplateDecl.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82871 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Mangle record types as decls.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82843 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Change isTemplate to return the actual template declaration.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82839 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Improve mangling of typename types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82833 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-24Refactor the representation of qualifiers to bring ExtQualType out of theJohn McCall
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22CXXMethodDecls should always be mangled, even if they are inside an extern ↵Anders Carlsson
"C" block. Fixes PR5017. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-22Don't assert that linkage decls are always C++, it's not true. Fixes PR5019.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82557 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Change all the Type::getAsFoo() methods to specializations of Type::getAs().John McCall
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Start mangling expressions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82423 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18More mangling work.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82265 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Make the mangler conform even better to the grammar.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82262 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18More mangler mangling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82250 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Call mangleTemplatePrefix.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82247 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Change manglePrefix to return early if the DC is the translation unit.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82246 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18More mangling goodness.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82193 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-18Handle mangling of TemplateSpecializationType.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82189 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Ignore extern "C++" { } when mangling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82146 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Revert r82123 for now.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82125 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Treat an unqualified RecordType as a RecordDecl when substituting.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82123 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Substitution for prefixes.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82122 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Substitute unscoped template names.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82119 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Add mangleSubstitution/addSubstitution variants that take a NamedDecl.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82116 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17When mangling function template specialization, mangle the type encoding of ↵Anders Carlsson
the original function template. Also, port mangle.cpp and function-template-specialization.cpp over to using FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82114 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Add new functions to the mangler for the <unscoped-name> and ↵Anders Carlsson
<unscoped-template-name> productions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82113 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-17Add basic substitution to the C++ mangler. It currently only looks at types.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82102 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12We can't have ctors in the vtable (right Doug?) :-)Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81619 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Remove unnecessary ASTContext parameters from isMain and isExternCDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81589 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09Remove tabs, and whitespace cleanups.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-07Refine vcall offsets. Cleanups. WIP.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81143 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-05Overhaul the mangler to use a visitor pattern, at least for types. We can ↵John McCall
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81070 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-05Install thunks later to fixup overrides. Track space taken by vbaseMike Stump
offsets better for thunk refinements. Cleanups. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-05Start emitting ElaboratedTypes in C++ mode. Support the effort in variousJohn McCall
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81065 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02Add mangling for covariant thunks.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02Shorten name.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80744 91177308-0d34-0410-b5e6-96231b3b80d8