summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/mangle.c
Commit message (Collapse)AuthorAgeFilesLines
* [Sema] Allow unmarked overloadable functions.George Burgess IV2017-06-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch extends the `overloadable` attribute to allow for one function with a given name to not be marked with the `overloadable` attribute. The overload without the `overloadable` attribute will not have its name mangled. So, the following code is now legal: void foo(void) __attribute__((overloadable)); void foo(int); void foo(float) __attribute__((overloadable)); In addition, this patch fixes a bug where we'd accept code with `__attribute__((overloadable))` inconsistently applied. In other words, we used to accept: void foo(void); void foo(void) __attribute__((overloadable)); But we will do this no longer, since it defeats the original purpose of requiring `__attribute__((overloadable))` on all redeclarations of a function. This breakage seems to not be an issue in practice, since the only code I could find that had this pattern often looked like: void foo(void); void foo(void) __attribute__((overloadable)) __asm__("foo"); void foo(int) __attribute__((overloadable)); ...Which can now be simplified by simply removing the asm label and overloadable attribute from the redeclaration of `void foo(void);` Differential Revision: https://reviews.llvm.org/D32332 llvm-svn: 306467
* Do not use IR marker for LLVM intrinsicsPeter Collingbourne2011-04-061-0/+9
| | | | llvm-svn: 129001
* Add a hack to avoid adding '\01' to asm names when possible. It would beRafael Espindola2011-02-151-3/+3
| | | | | | | better for clang to always compute the right name, but for now this hack fixes PR9177 and lets us build firefox with LTO :-) llvm-svn: 125607
* Implement new mangling for vectors.Nick Lewycky2010-03-261-0/+4
| | | | llvm-svn: 99616
* 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 based on the declaration we're given, not the canonicalDouglas Gregor2009-10-281-8/+15
| | | | | | | | declaration, since attributes that affect mangling may have been added to subsequent declarations. However, to determine the linkage of the declaration, we need to look at the canonical declaration. Fixes PR4412. llvm-svn: 85400
* Remove the -arch option from clang-cc: for all practical purposes, it's Eli Friedman2009-05-191-1/+1
| | | | | | redundant with -triple. llvm-svn: 72108
* Change UsedArray to be a vector of WeakVH to fix a dangling pointer problem ↵Chris Lattner2009-03-311-0/+5
| | | | | | | | that occurs when attribute(used) and asm renaming are used together. llvm-svn: 68155
* Rename clang to clang-cc.Daniel Dunbar2009-03-241-1/+1
| | | | | | Tests and drivers updated, still need to shuffle dirs. llvm-svn: 67602
* fix a crash that could occur when a variable declaration became aChris Lattner2009-03-211-0/+11
| | | | | | function definition. llvm-svn: 67446
* simplify and cleanup global variable creation stuff to all go through oneChris Lattner2009-03-211-0/+10
| | | | | | code path. llvm-svn: 67445
* fix several problems with asm renaming, by pulling it into the mangling code:Chris Lattner2009-03-211-1/+20
| | | | | | | | 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. llvm-svn: 67442
* We must always mangle attribute overloadable functions; even if in aDaniel Dunbar2009-02-201-0/+9
system header. - Prevents a codegen crash when anything used anything in tgmath! :) llvm-svn: 65200
OpenPOWER on IntegriCloud