* cp-objcp-common.c (cxx_staticp): New function.
* cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
* cp-tree.h (cxx_staticp): New function.
PR c++/289991
* g++.dg/init/static3.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116838
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-09-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28991
+ * cp-objcp-common.c (cxx_staticp): New function.
+ * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
+ * cp-tree.h (cxx_staticp): New function.
+
2006-09-09 Jason Merrill <jason@redhat.com>
PR c++/28996
return 0;
}
+tree
+cxx_staticp (tree arg)
+{
+ switch (TREE_CODE (arg))
+ {
+ case BASELINK:
+ return staticp (BASELINK_FUNCTIONS (arg));
+
+ default:
+ break;
+ }
+
+ return NULL_TREE;
+}
+
/* Stubs to keep c-opts.c happy. */
void
push_file_scope (void)
#define LANG_HOOKS_EXPAND_DECL c_expand_decl
#undef LANG_HOOKS_PARSE_FILE
#define LANG_HOOKS_PARSE_FILE c_common_parse_file
+#undef LANG_HOOKS_STATICP
+#define LANG_HOOKS_STATICP cxx_staticp
#undef LANG_HOOKS_DUP_LANG_SPECIFIC_DECL
#define LANG_HOOKS_DUP_LANG_SPECIFIC_DECL cxx_dup_lang_specific_decl
#undef LANG_HOOKS_SET_DECL_ASSEMBLER_NAME
extern void cxx_initialize_diagnostics (struct diagnostic_context *);
extern int cxx_types_compatible_p (tree, tree);
extern void init_shadowed_var_for_decl (void);
+extern tree cxx_staticp (tree);
/* in cp-gimplify.c */
extern int cp_gimplify_expr (tree *, tree *, tree *);
+2006-09-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28991
+ * g++.dg/init/static3.C: New test.
+
2006-09-10 Andrew Pinski <pinskia@physics.uc.edu>
PR testsuite/29007
--- /dev/null
+// { dg-do run }
+
+struct T
+{
+ static void (*handler)();
+ static void func() {};
+};
+
+bool fail;
+
+struct S {
+ S() {
+ if (T::handler != T::func)
+ fail = true;
+ }
+};
+
+static S s;
+
+void (*T::handler)() = func;
+
+int main()
+{
+ if (fail)
+ return 1;
+}