* class.c (layout_class_type): Determine the visibility of static
data members.
PR c++/18925
* g++.dg/ext/visibility/staticdatamem.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92120
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
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;
}
+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.
--- /dev/null
+// 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--;
+}