aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/visibility-inlines-hidden.cpp
AgeCommit message (Collapse)Author
2013-01-12Disable caching of visibility.Rafael Espindola
The testcase in pr14929 shows that this is extremely hard to do. If we choose to apply the attribute, that causes the visibility of some decls to change and that can happen really late (during codegen). Current gcc warns and ignores the attribute in this testcase with a warning. This suggest that the correct solution is to find a point in the compilation where we can compute the visibility and * assert it was never computed before * reject any attempts to compute it again in the future (with warnings). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172305 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-25Add 171048 back but invalidate the cache of all redeclarations when settingRafael Espindola
the body of a functions. The problem was that hasBody looks at the entire chain and causes problems to -fvisibility-inlines-hidden if the cache was not invalidated. Original message: Cache visibility of decls. This unifies the linkage and visibility caching. I first implemented this when working on pr13844, but the previous fixes removed the performance advantage of this one. This is still a step in the right direction for making linkage and visibility cheap to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171053 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24A number of test cases assume that an "int" parameter or return valueUlrich Weigand
will be represented in the IR as a plain "i32" type. This causes the tests to spuriously fail on platforms where int is not a 32-bit type, or where the ABI requires attributes like "signext" or "zeroext" to be used. This patch adds -triple or -target parameters to force those tests to use the i386-unknown-unknown target. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166551 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-11Handle gnu_inline in c++ in a gcc compatible way. Original patch by TobiasRafael Espindola
Grosser. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165720 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-13Use -fvisibility-inlines-hidden in inline functions too. This matches gccRafael Espindola
behavior since gcc pr30066. Thanks to Benjamin Kramer for pointing it out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160174 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-27Fix the visibility of methods of explicit template instantiation definitionRafael Espindola
when using -fvisibility-inlines-hidden. This matches gcc's behavior and documentation. Fixes PR11642. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147295 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-15Fix a couple more tests with ARM ABI.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133073 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-10Treat visibility on an enclosing namespace as a non-explicit source ofJohn McCall
visibility. Fixes PR8713. I've disabled a test which was testing that you can #pragma pop visibility to get out of a namespace's visibility attribute. We should probably just diagnose that as an error unless it's instrumental to someone's system headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-01Only apply -fvisibility-inlines-hidden to definitions. ApparentlyJohn McCall
isInlined() just gives meaningless results for non-definitions. Fixes rdar://problem/8614470 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117887 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-28Don't apply -fvisibility-inlines-hidden to extern templates.John McCall
Part 2 of rdar://problem/8595231 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117567 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15Implement -fvisibility-inlines-hidden. <rdar://problem/7819834>Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106003 91177308-0d34-0410-b5e6-96231b3b80d8