summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-subst-std.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Output destructors and constructors in a more natural order.Rafael Espindola2013-12-091-1/+1
| | | | | | | | | | | | | | | | With this patch we output the in the order C2 C1 D2 D1 D0 Which means that a destructor or constructor that call another is output after the callee. This is a bit easier to read IHMO and a tiny bit more efficient as we don't put a decl in DeferredDeclsToEmit. llvm-svn: 196784
* CHECK-LABEL-ify some code gen tests to improve diagnostic experience when ↵Stephen Lin2013-08-151-6/+6
| | | | | | tests fail. llvm-svn: 188447
* Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGenPeter Collingbourne2011-09-261-3/+3
| | | | llvm-svn: 140503
* clang side to match the LLVM IR type system rewrite patch.Chris Lattner2011-07-091-2/+2
| | | | llvm-svn: 134831
* Fix another regression from the "skip vtable pointer initialization"Anders Carlsson2011-05-161-1/+2
| | | | | | | optimization. Make sure to require a vtable when trying to get the address of a VTT, otherwise we would never end up emitting the VTT. llvm-svn: 131400
* Re-enable the fix for PR9181 now that all the edge cases are handled.Anders Carlsson2011-05-151-1/+1
| | | | llvm-svn: 131385
* Disable the optimization until the bug noticed by Sean Hunt has been fixed.Anders Carlsson2011-05-151-1/+1
| | | | llvm-svn: 131372
* When emitting the destructor for a class with a vtable, if we can determineAnders Carlsson2011-05-141-1/+1
| | | | | | | | | | that the destructor body is trivial and that all member variables also have either trivial destructors or trivial destructor bodies, we don't need to initialize the vtable pointers since no virtual member functions will be called on the destructor. Fixes PR9181. llvm-svn: 131368
* We were emitting construction v-tables with internal linkage all the time.John McCall2011-03-271-2/+2
| | | | | | | | | | | | | | | Emit them instead with the linkage of the VTT. I'm actually really ambivalent about this; it's what GCC does, but outside of improving code size (if the linkage is coalescing), I'm not sure it's at all relevant. Construction vtables are naturally referenced only by the VTT, which is itself only referenced by complete-object constructors and destructors; giving the construction vtables possibly-external linkage is important if you have an optimization that drills through the VTT to a reference to a particular construction vtable which it cannot just emit itself. llvm-svn: 128374
* Make emitting a VTT a two-step process, much like emitting a VTable. You ↵Anders Carlsson2011-01-291-3/+3
| | | | | | first get the address of the VTT, and then pass it to EmitVTTDefinition. llvm-svn: 124539
* Move unnamed_addr after the function arguments on Sabre's request.Rafael Espindola2011-01-251-2/+2
| | | | llvm-svn: 124210
* Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the ↵Anders Carlsson2011-01-241-6/+6
| | | | | | | | exception of explicit template instantiations, which have to be weak_odr. This fixes PR6996. llvm-svn: 124089
* Set unnamed_addr in VTTs.Rafael Espindola2011-01-111-3/+3
| | | | llvm-svn: 123280
* Add unnamed_addr to vtables.Rafael Espindola2011-01-111-3/+3
| | | | llvm-svn: 123272
* Add unnamed_addr to constructors and destructors.Rafael Espindola2011-01-111-2/+2
| | | | llvm-svn: 123197
* It turns out that linkers (at least, the Darwin linker) don't necessarilyJohn McCall2010-08-051-3/+3
| | | | | | | | | | | do the right thing with mixed-visibility symbols, so disable the visibility optimization where that's possible, i.e. with template classes (since it's possible that an arbitrary template might be subject to an explicit instantiation elsewhere). 447.dealII actually does this. I've put the code under an option that's currently not hooked up to anything. llvm-svn: 110374
* Extend the hidden-visibility vtables optimization to template classes thatJohn McCall2010-08-041-3/+3
| | | | | | haven't been explicitly instantiated. llvm-svn: 110189
* Don't substitute 'St' for 'std' when the namespace is nested inside another ↵Anders Carlsson2010-06-021-0/+10
| | | | | | namespace. llvm-svn: 105330
* Be sure to use the standard substitutions when mangling the names ofDouglas Gregor2010-05-261-3/+41
| | | | | | vtables, VTTs, and construction vtables. Fixes PR7201. llvm-svn: 104675
* PR6400: Handle an extreme edge case in mangling correctly.Eli Friedman2010-02-231-0/+6
| | | | llvm-svn: 96961
* Revert the ctor/dtor alias optimization for now; the buildbots can detectJohn McCall2010-02-181-2/+1
| | | | | | some failure here that I can't. llvm-svn: 96612
* Emit complete constructors and destructors as aliases to base constructorsJohn McCall2010-02-171-1/+2
| | | | | | | | and destructors when the two entities are semantically identical, i.e. when the class has no virtual base classes. We only do this for linkage types for which aliases are supported, i.e. internal and external, i.e. not linkonce. llvm-svn: 96451
* Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.Daniel Dunbar2009-12-151-1/+1
| | | | | | | | | - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). llvm-svn: 91446
* Mangle basic_ostream and basic_iostream specializations.Anders Carlsson2009-12-071-0/+8
| | | | llvm-svn: 90794
* Correctly mangle the 'std' namespace inside extern "C++" blocks.Anders Carlsson2009-12-041-0/+10
| | | | llvm-svn: 90544
* Mangle std::basic_ostream<char, std::char_traits<char>> as So.Anders Carlsson2009-10-081-3/+10
| | | | llvm-svn: 83557
* Remove PR5061 workaround.Anders Carlsson2009-09-291-6/+2
| | | | llvm-svn: 83046
* Mangle std::basic_string<char, std::char_traits<char>, std::allocator<char> ↵Anders Carlsson2009-09-271-3/+12
| | | | | | > as Ss. llvm-svn: 82882
* Mangle ::std::basic_string as Sb.Anders Carlsson2009-09-261-1/+10
| | | | llvm-svn: 82881
* Mangle ::std::allocator as Sa.Anders Carlsson2009-09-261-0/+9
| | | | llvm-svn: 82880
* Substitute "::std::" as "St".Anders Carlsson2009-09-261-0/+9
llvm-svn: 82874
OpenPOWER on IntegriCloud