+ 2012-05-17 Jan Hubicka j...@suse.cz
+
+ * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
constructor
+ over decl without.
+ * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed
nodes.
+ * cgraph.h
On Thu, May 17, 2012 at 9:42 AM, Jan Hubicka hubi...@ucw.cz wrote:
Hi,
C++ virtual tables keyed to other compilation units are represented as
DECL_EXTERNAL
variables with constructor known. Knowhing the constructor helps constant
folding to do
devirtualization.
At the moment these
Bootstrapped/regtested x86_64-linux, comitted.
It presumably breaks Ada bootstrap on x86/Linux:
/home/eric/build/gcc/native32/./prev-gcc/xgcc
-B/home/eric/build/gcc/native32/./prev-gcc/
-B/home/eric/install/gcc/i586-suse-linux/bin/
-B/home/eric/install/gcc/i586-suse-linux/bin/
Bootstrapped/regtested x86_64-linux, comitted.
It presumably breaks Ada bootstrap on x86/Linux:
I suppose so. I tested x86_64/linux with Ada.
/home/eric/build/gcc/native32/./prev-gcc/xgcc
-B/home/eric/build/gcc/native32/./prev-gcc/
-B/home/eric/install/gcc/i586-suse-linux/bin/
The problem here seems to be that Ada constructs an variable that is
DECL_EXTERNAL, passes const_value_known_p and has DECL_INITIAL, yet its
TREE_STATIC is not set. C++ always output those variables with TREE_STATIC
set and to be honest, I am unsure what is intended semantics of this flag
in
OK, does the following patch fix the problem? I will try to understand how
conistent is C++ frontend about the flags. It would be nice to have safer
way to declare the static var in other unit than combination of EXTERNAL
and STATIC...
Not sufficient it seems:
OK, does the following patch fix the problem? I will try to understand how
conistent is C++ frontend about the flags. It would be nice to have safer
way to declare the static var in other unit than combination of EXTERNAL
and STATIC...
Not sufficient it seems:
Hi,
my apologize for the breakage. I somehow missed Ada in --enable-languages
list. I've comitted the following fix that also cures enable checking failure
of g++.dg/torture/pr46154.C
Honza
* cgraphunit.c (varpool_finalize_decl): Allow external decls.
my apologize for the breakage. I somehow missed Ada in --enable-languages
list. I've comitted the following fix that also cures enable checking
failure of g++.dg/torture/pr46154.C
No problem, thanks for the quick fix!
--
Eric Botcazou