mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-23 18:11:15 +08:00
re PR target/18925 (Invalid gprel relocation in PIC)
PR c++/18925 * class.c (layout_class_type): Determine the visibility of static data members. PR c++/18925 * g++.dg/ext/visibility/staticdatamem.C: New test. From-SVN: r92120
This commit is contained in:
parent
fd2ad93d8f
commit
532b37d9b8
@ -1,3 +1,9 @@
|
||||
2004-12-13 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/18925
|
||||
* class.c (layout_class_type): Determine the visibility of static
|
||||
data members.
|
||||
|
||||
2004-12-12 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
PR middle-end/12454
|
||||
|
@ -4553,7 +4553,13 @@ layout_class_type (tree t, tree *virtuals_p)
|
||||
At this point, finish_record_layout will be called, but
|
||||
S1 is still incomplete.) */
|
||||
if (TREE_CODE (field) == VAR_DECL)
|
||||
maybe_register_incomplete_var (field);
|
||||
{
|
||||
maybe_register_incomplete_var (field);
|
||||
/* The visibility of static data members is determined
|
||||
at their point of declaration, not their point of
|
||||
definition. */
|
||||
determine_visibility (field);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2004-12-13 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/18925
|
||||
* g++.dg/ext/visibility/staticdatamem.C: New test.
|
||||
|
||||
2004-12-13 Kelley Cook <kcook@gcc.gnu.org>
|
||||
|
||||
* gcc.target/xstormy16/below100.S: Remove DOS line endings.
|
||||
|
20
gcc/testsuite/g++.dg/ext/visibility/staticdatamem.C
Normal file
20
gcc/testsuite/g++.dg/ext/visibility/staticdatamem.C
Normal file
@ -0,0 +1,20 @@
|
||||
// PR c++/18925
|
||||
// { dg-do compile { target ia64-*-linux* } }
|
||||
// { dg-options "-fPIC -fvisibility=hidden" }
|
||||
// { dg-final { scan-assembler-not "gprel" } }
|
||||
|
||||
class __attribute__ ((visibility("default"))) Type
|
||||
{
|
||||
private:
|
||||
static long _staticTypeCount;
|
||||
public:
|
||||
Type() { _staticTypeCount++; }
|
||||
~Type();
|
||||
};
|
||||
|
||||
long Type::_staticTypeCount = 0;
|
||||
|
||||
Type::~Type()
|
||||
{
|
||||
_staticTypeCount--;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user