Anders Carlsson
d313e40ff8
Fix thinko, mangleCXXRtti should obviously take a QualType!
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85565 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-30 01:52:02 +00:00
Anders Carlsson
731f7f9583
mangleCXXRtti obviously needs to take a type, what was I thinking...
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85555 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-30 01:26:12 +00:00
Mike Stump
88e9171fc7
Add mangling for VTTs.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85363 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-28 01:51:46 +00:00
Anders Carlsson
fc3bf4d4d2
Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of QualTypes.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83793 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:24:51 +00:00
Anders Carlsson
c4355b6883
Mangle anonymous structs/unions correctly. Fixes PR5139.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07 01:45:02 +00:00
Anders Carlsson
b540491851
Add a MangleContext and pass it to all mangle functions. It will be used for 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-07 01:06:45 +00:00
Mike Stump
6e319f6adc
Add basic covariant thunk generation support. WIP.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81585 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 23:25:56 +00:00
Mike Stump
1eb4433ac4
Remove tabs, and whitespace cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 15:08:12 +00:00
Mike Stump
dec025b15c
Refine vcall offsets. Cleanups. WIP.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81143 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-07 04:27:52 +00:00
Mike Stump
77ca8f6c5e
Install thunks later to fixup overrides. Track space taken by vbase
...
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-05 07:20:32 +00:00
Mike Stump
9124bccde8
Add mangling for covariant thunks.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 00:56:18 +00:00
Mike Stump
883f127b28
Shorten name.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80744 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 00:28:47 +00:00
Mike Stump
141c5afc2b
Add mangling for thunks.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 00:25:38 +00:00
Mike Stump
738f8c278d
Add beginnigs of rtti generation, wire up more of -fno-exceptions.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31 23:15:31 +00:00
Mike Stump
f121677b6b
Add code to setup the vtable pointer in the constructor. Work in progress.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77699 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31 18:25:34 +00:00
Anders Carlsson
27ae53665f
Add support for generating (very basic) C++ destructors. These aren't called by anything yet.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69343 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-17 01:58:57 +00:00
Anders Carlsson
3ac86b59b0
Add support for mangling C++ constructors. Review appreciated (I'm looking at you, Doug)
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69150 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-15 05:36:58 +00:00
Anders Carlsson
41aa8c1e40
Add support for mangling guard variables.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68969 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-13 18:02:10 +00:00
Chris Lattner
ca3f25c1fb
fix several problems with asm renaming, by pulling it into the mangling code:
...
1. it wasn't applying to definitions, only declarations, e.g. int x __asm("foo")
2. multiple definitions were conflicting, they weren't getting merged.
3. the code was duplicated in several places.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67442 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-21 08:24:40 +00:00
Douglas Gregor
6ec3668a26
Address Chris's comments regarding C++ name mangling.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64984 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18 23:53:56 +00:00
Douglas Gregor
5f2bfd4811
Add basic support for C++ name mangling according to the Itanium C++
...
ABI to the CodeGen library. Since C++ code-generation is so
incomplete, we can't exercise much of this mangling code. However, a
few smoke tests show that it's doing the same thing as GCC. When C++
codegen matures, we'll extend the ABI tester to verify name-mangling
as well, and complete the implementation here.
At this point, the major client of name mangling is in the uses of the
new "overloadable" attribute in C, which allows overloading. Any
"overloadable" function in C (or in an extern "C" block in C++) will
be mangled the same way that the corresponding C++ function would be
mangled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64413 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13 00:10:09 +00:00