History log of /external/clang/test/CodeGenCXX/linkage.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5e867c8a07d82da0d3b0a43402ee4f1c6ba416e9 10-Jul-2013 Eli Friedman <eli.friedman@gmail.com> More local mangling fixes.

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>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
7a36a5913f045bfaf6d26ed874e39a3e7c1ad9ae 01-Jul-2013 Eli Friedman <eli.friedman@gmail.com> Simplify linkage code for static local vars.

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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
9610d77508bdca13e0475783ff404428611c9683 17-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Cleanup linkage computation for static locals.

With this patch we assign VisibleNoLinkage to static locals in inline functions.
This lets us simplify CodeGen a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
ec0d96f8fa33a56cf4b9ea7d63bff8c0abcdd13c 04-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix linkage computation for local types in template functions.

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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
53db1b55ed54f8eeab69528200a021ef078e8cda 29-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Add a testcase from pr16059.

It was fixed back in r182750, but this is a nice testcase to have.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
e8328540cffa6b5b5f7d07e2e7d2f3503500a383 28-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Propagate VisibleNoLinkage down to class members.

Fixes PR16114.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
bdf2bba1cb8c6347f43a3caa36e801b1d86450d0 27-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix the linkage of local types in inline VisibleNoLinkage functions.

We were handling only local types in inline External functions before.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
a99ecbcc4c431d52df0b01539035ab5281d54656 25-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix linkage computation for derived types in inline functions.

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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
ac8b151c4f0478c76a61f2044445b9367fa1a299 18-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Handle local enum types too.

Thanks to John McCall for pointing this out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
8b00b8004eaffd42429ffb1f3fc9efaa3194cc15 18-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Use the awesome CHECK-DAG!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp
1229e20dfa837998541aa3c6fafcc188981acd2f 16-May-2013 Rafael Espindola <rafael.espindola@gmail.com> Fix pr15930.

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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181981 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/linkage.cpp