summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/linkage.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make '-disable-llvm-optzns' an alias for '-disable-llvm-passes'.Chandler Carruth2016-12-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Much to my surprise, '-disable-llvm-optzns' which I thought was the magical flag I wanted to get at the raw LLVM IR coming out of Clang deosn't do that. It still runs some passes over the IR. I don't want that, I really want the *raw* IR coming out of Clang and I strongly suspect everyone else using it is in the same camp. There is actually a flag that does what I want that I didn't know about called '-disable-llvm-passes'. I suspect many others don't know about it either. It both does what I want and is much simpler. This removes the confusing version and makes that spelling of the flag an alias for '-disable-llvm-passes'. I've also moved everything in Clang to use the 'passes' spelling as it seems both more accurate (*all* LLVM passes are disabled, not just optimizations) and much easier to remember and spell correctly. This is part of simplifying how Clang drives LLVM to make it cleaner to wire up to the new pass manager. Differential Revision: https://reviews.llvm.org/D28047 llvm-svn: 290392
* FileCheck's -LABEL cannot be combined with -NOT or -DAGNico Rieck2014-02-161-17/+17
| | | | llvm-svn: 201476
* RP18408: If a member template is used as a template template argument, it doesRichard Smith2014-01-081-0/+8
| | | | | | not cause the template specialization to have no linkage. llvm-svn: 198726
* CHECK-LABEL-ify some code gen tests to improve diagnostic experience when ↵Stephen Lin2013-08-151-17/+17
| | | | | | tests fail. llvm-svn: 188447
* More local mangling fixes.Eli Friedman2013-07-101-10/+10
| | | | | | | | | | | | Compute mangling numbers for externally visible local variables and tags. Change the mangler to consistently use discriminators where necessary. Tweak the scheme we use to number decls which are not externally visible to avoid unnecessary discriminators in common cases now that we request them more consistently. Fixes <rdar://problem/14204721>. llvm-svn: 185986
* Simplify linkage code for static local vars.Eli Friedman2013-07-011-1/+1
| | | | | | | | | The key insight here is that weak linkage for a static local variable should always mean linkonce_odr, because every file that needs it will generate a definition. We don't actually care about the precise linkage of the parent context. I feel a bit silly that I didn't realize this before. llvm-svn: 185381
* Cleanup linkage computation for static locals.Rafael Espindola2013-06-171-0/+11
| | | | | | | With this patch we assign VisibleNoLinkage to static locals in inline functions. This lets us simplify CodeGen a bit. llvm-svn: 184114
* Fix linkage computation for local types in template functions.Rafael Espindola2013-06-041-0/+25
| | | | | | | | Template functions (and member functions of class templates) present the same problem as inline functions. They need to be uniqued, so we need to assign VisibleNoLinkage linkage to types defined in them. llvm-svn: 183222
* Add a testcase from pr16059.Rafael Espindola2013-05-291-0/+14
| | | | | | It was fixed back in r182750, but this is a nice testcase to have. llvm-svn: 182818
* Propagate VisibleNoLinkage down to class members.Rafael Espindola2013-05-281-0/+11
| | | | | | Fixes PR16114. llvm-svn: 182750
* Fix the linkage of local types in inline VisibleNoLinkage functions.Rafael Espindola2013-05-271-0/+16
| | | | | | We were handling only local types in inline External functions before. llvm-svn: 182737
* Fix linkage computation for derived types in inline functions.Rafael Espindola2013-05-251-0/+40
| | | | | | | | | | | | | | | | | John noticed that the fix for pr15930 (r181981) didn't handle indirect uses of local types. For example, a pointer to local struct, or a function that returns it. One way to implement this would be to recursively look for local types. This would look a lot like the linkage computation itself for types. To avoid code duplication and utilize the existing linkage cache, this patch just makes the computation of "type with no linkage but externally visible because it is from an inline function" part of the linkage computation itself. llvm-svn: 182711
* Handle local enum types too.Rafael Espindola2013-05-181-0/+11
| | | | | | Thanks to John McCall for pointing this out. llvm-svn: 182182
* Use the awesome CHECK-DAG!Rafael Espindola2013-05-171-8/+7
| | | | llvm-svn: 182167
* Fix pr15930.Rafael Espindola2013-05-161-0/+95
In the case of inline functions, we have to special case local types when they are used as template arguments to make sure the template instantiations are still uniqued in case the function itself is inlined. llvm-svn: 181981
OpenPOWER on IntegriCloud