summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/visibility.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Small cosmetic cleanups in code I will change anyway.Rafael Espindola2012-01-021-1/+1
| | | | llvm-svn: 147424
* Consider visibility attributes in namespaces as being explicit. I.e., theyRafael Espindola2012-01-011-0/+12
| | | | | | take precedence over command line options. Fixes PR10113. llvm-svn: 147405
* Remove a non-gcc-compatible extension that would apply attributes on ↵Eli Friedman2011-12-171-1/+1
| | | | | | declarations without a declarator to structs. Add a warning for ignored attributes. Patch by Michael Han. llvm-svn: 146796
* Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGenPeter Collingbourne2011-09-261-1/+1
| | | | llvm-svn: 140503
* Don't factor in visibility for templates and template argumentsJohn McCall2011-06-271-0/+32
| | | | | | for explicit specializations with their own explicit visibility. llvm-svn: 133958
* Don't consider visibility from template parameter lists if we'reJohn McCall2011-03-041-0/+11
| | | | | | | | | computing for a nested decl with explicit visibility. This is all part of the general philosophy of explicit visibility attributes, where any information that was obviously available at the attribute site should probably be ignored. Fixes PR9371. llvm-svn: 126992
* Mark VTables and RTTI data linkonce_odr instead of weak_odr, with the ↵Anders Carlsson2011-01-241-1/+1
| | | | | | | | exception of explicit template instantiations, which have to be weak_odr. This fixes PR6996. llvm-svn: 124089
* Also set unnamed_addr on declarations.Rafael Espindola2011-01-151-2/+2
| | | | llvm-svn: 123531
* Only add unnamed_addr to definitions.Rafael Espindola2011-01-131-2/+2
| | | | llvm-svn: 123354
* Set unnamed_addr in VTTs.Rafael Espindola2011-01-111-1/+1
| | | | llvm-svn: 123280
* Add unnamed_addr to vtables.Rafael Espindola2011-01-111-2/+2
| | | | llvm-svn: 123272
* Fix test. I added one last test and then forget to re-check.John McCall2010-12-181-1/+1
| | | | llvm-svn: 122137
* Apply attributes to explicit specializations. Specializations whichJohn McCall2010-12-181-0/+55
| | | | | | | don't provide their own explicit visibility attributes should get them from the template. Fixes rdar://problem/8778497. llvm-svn: 122136
* Ensure that static local variables in function templates inherit theJohn McCall2010-11-021-0/+17
| | | | | | visibility of their function. llvm-svn: 118065
* Ignore attributes on classes when calculating visibility for membersJohn McCall2010-11-021-0/+89
| | | | | | | with their own explicit visibility attributes. Basically we only want to apply a single visibility attribute from any particular ancestry. llvm-svn: 117998
* Better solution: calculate the visibility of functions and variablesJohn McCall2010-10-301-0/+16
| | | | | | | | | | independently of whether they're definitions, then teach IR generation to ignore non-explicit visibility when emitting declarations. Use this to make sure that RTTI, vtables, and VTTs get the right visibility. More of rdar://problem/8613093 llvm-svn: 117781
* GCC faithfully calculates visibility for variables independently ofJohn McCall2010-10-301-0/+16
| | | | | | | | whether it's a declaration or not, then ignores that information for declarations unless it was explicitly given. It's not totally clear how that should be mapped into a sane system, but make an effort. llvm-svn: 117780
* Restore r117644, this time properly ignoring -fvisibility and type visibilityJohn McCall2010-10-291-0/+53
| | | | | | | | | | | | | | | for namespace-scope variable declarations. Apply visibility in IR gen to variables that are merely declared and never defined. We were previously emitting these with default visibility unless they were declared with private_extern. Ignore global visibility settings when computing visibility for a declaration's context, and key several conditions on whether a visibility attribute exists anywhere in the hierarchy as opposed to whether it exists at the current level. llvm-svn: 117729
* Revert r117644, "Apply visibility in IR gen to variables that are merelyDaniel Dunbar2010-10-291-42/+0
| | | | | | declared", it breaks things. llvm-svn: 117653
* Apply visibility in IR gen to variables that are merely declaredJohn McCall2010-10-291-0/+42
| | | | | | | | | | | | and never defined. We were previously emitting these with default visibility unless they were declared with private_extern. Ignore global visibility settings when computing visibility for a declaration's context, and key several conditions on whether a visibility attribute exists anywhere in the hierarchy as opposed to whether it exists at the current level. llvm-svn: 117644
* When computing the visibility of a class member, calculate the visibilityJohn McCall2010-10-291-0/+19
| | | | | | | of its context without considering global settings like -fvisibility=hidden. Fixes PR8492. llvm-svn: 117628
* Abandon the type-visibility optimization for functions. GCC doesn't do it,John McCall2010-10-281-0/+13
| | | | | | and it's too much trouble to push for. Fixes PR8478. llvm-svn: 117532
* A couple of tweaks to the visibility rules: John McCall2010-10-261-0/+18
| | | | | | | | | | | - tags with C linkage should ignore visibility=hidden - functions and variables with explicit visibility attributes should ignore the linkage of their types Either of these should be sufficient to fix PR8457. Also, FileCheck-ize a test case. llvm-svn: 117351
* Substantially revise how clang computes the visibility of a declaration toJohn McCall2010-10-221-0/+33
| | | | | | | | more closely parallel the computation of linkage. This gets us to a state much closer to what gcc emits, modulo bugs, which will undoubtedly arise in abundance. llvm-svn: 117147
* Make sure to set the visible on a vtable; VTTs and typeinfo alreadyDouglas Gregor2010-06-141-1/+19
| | | | | | handle visibility properly. Fixes <rdar://problem/8091955>. llvm-svn: 105977
* Improved handling of the visibility attribute. Declarations now inherit ↵Anders Carlsson2010-02-071-0/+66
their parent's visibility. (This is kind of a risky change, but I did a self-host build and everything appears to work fine!) llvm-svn: 95511
OpenPOWER on IntegriCloud