summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-template.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix for the mingw builderDavid Majnemer2016-07-121-1/+1
| | | | llvm-svn: 275191
* [ItaniumMangle] Correctly mangle BuiltinTemplateDeclsDavid Majnemer2016-07-121-0/+11
| | | | | | | | | | A BuiltinTemplateDecl has no underlying templated decl and as such they cannot be relied upon for mangling. The ItaniumMangler had some bugs here which lead to crashes. This fixes PR28519. llvm-svn: 275190
* Account for calling convention specifiers in function definitions in IR test ↵David Blaikie2015-06-291-5/+5
| | | | | | | | | | | | | cases Several tests wouldn't pass when executed on an armv7a_pc_linux triple due to the non-default arm_aapcs calling convention produced on the function definitions in the IR output. Account for this with the application of a little regex. Patch by Ying Yi. llvm-svn: 240971
* Itanium ABI: Restore disabled tests which are correctly mangledDavid Majnemer2015-02-181-5/+2
| | | | llvm-svn: 229725
* Itanium ABI: Properly mangle extern "C" template argumentsDavid Majnemer2015-02-181-4/+2
| | | | | | | | | extern "C" declarations should be considered like global declarations for mangling purposes. Differential Revision: http://reviews.llvm.org/D7718 llvm-svn: 229724
* Itanium ABI: Mangle <mangled-name> according to the ABIDavid Majnemer2015-02-181-6/+6
| | | | | | | | | | | | | | | We attempted to be compatible with GCC's buggy mangling for templates with a declaration for a template argument. However, we weren't completely successful in copying their bug in cases like: char foo; template <char &C> decltype(C) f() { return foo; }; template char &f<foo>(); Instead, just follow the ABI specification. This fixes PR22621. llvm-svn: 229644
* Remove old proposal noticesAlp Toker2014-06-051-1/+1
| | | | | | Let's just go ahead and assume the answer was 'I do' llvm-svn: 210295
* Remove the -cxx-abi command-line flag.Hans Wennborg2014-01-141-1/+1
| | | | | | | | | | | | | | | This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples, Itanium otherwise. It's no longer possible to do weird combinations. To be able to run a test with a specific ABI without constraining it to a specific triple, new substitutions are added to lit: %itanium_abi_triple and %ms_abi_triple can be used to get the current target triple adjusted to the desired ABI. For example, if the test suite is running with the i686-pc-win32 target, %itanium_abi_triple will expand to i686-pc-mingw32. Differential Revision: http://llvm-reviews.chandlerc.com/D2545 llvm-svn: 199250
* Remove 'not' from some CodeGen testsAlp Toker2013-12-141-2/+4
| | | | | | | | These were just missing an expected-no-diagnostics directive. Also add -std=c++11 to a test warning noisly about extensions. llvm-svn: 197308
* Prepare for using MS ABI by default for Win32: update CodeGenCXX testsHans Wennborg2013-12-131-1/+1
| | | | llvm-svn: 197281
* Sema: Propagate the mangling number into instantiationsDavid Majnemer2013-12-041-0/+22
| | | | | | | | | | | | | | | | | | We would lose track of the mangling number assigned to the original declaration which would cause us to create manglings that didn't match the Itanium C++ specification. e.g. Two static fields with the same name inside of a function template would receive the same mangling with LLVM fixing up the second field so they wouldn't collide. This would create an incompatibility with other compilers following the Itanium ABI. I've confirmed that the new mangling is identical to the ones generated by icc and gcc. N.B. This was uncovered while working on Microsoft mangler. llvm-svn: 196368
* CHECK-LABEL-ify some code gen tests to improve diagnostic experience when ↵Stephen Lin2013-08-151-5/+5
| | | | | | tests fail. llvm-svn: 188447
* Restore r184205 and associated commits (after commit of r185290)Stephen Lin2013-06-301-2/+2
| | | | | | This allows clang to use the backend parameter attribute 'returned' when generating 'this'-returning constructors and destructors in ARM and MSVC C++ ABIs. llvm-svn: 185291
* Revert r184205 and associated patches while investigating issue with broken ↵Stephen Lin2013-06-191-2/+2
| | | | | | | | buildbot (possible interaction with LTO) <rdar://problem/14209661> llvm-svn: 184384
* Fix C++ constructor/destructor tests when run on ARMStephen Lin2013-06-181-2/+2
| | | | llvm-svn: 184225
* Fix the AST representation for non-type template arguments to encodeEli Friedman2012-09-261-2/+2
| | | | | | | | | | | | enough information so we can mangle them correctly in cases involving dependent parameter types. (This specifically impacts cases involving null pointers and cases involving parameters of reference type.) Fix the mangler to use this information instead of trying to scavenge it out of the parameter declaration. <rdar://problem/12296776>. llvm-svn: 164656
* When mangling a negative number, remember that negating it does notJohn McCall2012-08-181-0/+12
| | | | | | | always yield a positive number. Just print the negated result as an unsigned number. llvm-svn: 162163
* Implement C++11 [temp.arg.nontype]'s permission to use the address of an objectRichard Smith2012-04-041-0/+17
| | | | | | or function with internal linkage as a non-type template argument. llvm-svn: 154053
* Fix the mangling of class template arguments in a particularJohn McCall2012-01-061-0/+9
| | | | | | dependent case. Thanks to Jason Merrill for pointing this out. llvm-svn: 147653
* clang side to match the LLVM IR type system rewrite patch.Chris Lattner2011-07-091-1/+1
| | | | llvm-svn: 134831
* Fix the mangling of dependent-scope decl ref expressions so that theyJohn McCall2011-06-211-2/+2
| | | | | | use the unresolved-name production correctly. llvm-svn: 133554
* Whack a bunch of tests in CodeGenCXX to work on ARM (using ARM ABI). Batch ↵Eli Friedman2011-06-141-1/+1
| | | | | | 2 of 3. llvm-svn: 133011
* Move unnamed_addr after the function arguments on Sabre's request.Rafael Espindola2011-01-251-1/+1
| | | | llvm-svn: 124210
* Add unnamed_addr to constructors and destructors.Rafael Espindola2011-01-111-1/+1
| | | | llvm-svn: 123197
* Improve name mangling for dependent template names (e.g., typenameDouglas Gregor2010-04-281-0/+17
| | | | | | | | T::template apply<U>), handling a few cases where we previously failed and performing substitutions on such dependent names. Fixes a crash in Boost.PropertyTree. llvm-svn: 102490
* Mangle dependent template names such as the nested-name-specifier inDouglas Gregor2010-04-231-0/+23
| | | | | | | | | T::apply <U>::type Fixes PR6899, although I want to dig a little deeper into the FIXME for dependent template names that refer to operators. llvm-svn: 102167
* Give explicit template instantiations weak ODR linkage. FormerDouglas Gregor2010-03-131-2/+2
| | | | | | | | | iterations of this patch gave explicit template instantiation link-once ODR linkage, which permitted the back end to eliminate unused symbols. Weak ODR linkage still requires the symbols to be generated. llvm-svn: 98441
* Re-revert the explicit template instantiation linkage patch. I am beginning ↵Douglas Gregor2010-03-131-2/+2
| | | | | | to look incompetent llvm-svn: 98425
* Reinstate patch to turn explicit template instantiations into weak symbolsDouglas Gregor2010-03-131-2/+2
| | | | llvm-svn: 98424
* Revert the linkage change for explicit template instantiations; something is ↵Douglas Gregor2010-03-121-2/+2
| | | | | | amiss llvm-svn: 98332
* Give explicit template instantiations weak linkage (but don't deferDouglas Gregor2010-03-121-2/+2
| | | | | | them). Fixes PR6578. llvm-svn: 98328
* Improve name mangling for dependently-scoped declaration references.Douglas Gregor2010-02-281-0/+19
| | | | llvm-svn: 97422
* Add name mangling for DeclRefExprs that refer to external namesDouglas Gregor2010-02-281-1/+20
| | | | llvm-svn: 97418
* 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
* Mangler: Sketch mangling for TemplateArgument::Declaration kind.Daniel Dunbar2009-11-211-0/+68
- Several important FIXMEs related to whether arguments are expressions or external names, and the mangling of extern "C" names (c.f., PR5522). llvm-svn: 89556
OpenPOWER on IntegriCloud