[Bug libfortran/77278] Use LTO for libgfortran
tkoenig at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Aug 21 11:00:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77278
--- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
Some information about the type mismatch.
The first mismatch about gfortran_st_write is
lto1: warning: type of '_gfortran_st_write' does not match original declaration
[-Wlto-type-mismatch]
Breakpoint 1, warn_types_mismatch (t1=0x7ffff6a8d150, t2=0x7ffff6a39540,
loc1=27996512, loc2=0) at ../../trunk/gcc/ipa-devirt.c:1051
1051 {
(gdb) up
#1 0x0000000000654b39 in lto_symtab_merge_decls_2 (diagnosed_p=false,
first=<optimized out>) at ../../trunk/gcc/lto/lto-symtab.c:679
679 DECL_SOURCE_LOCATION (decl));
(gdb) down
#0 warn_types_mismatch (t1=0x7ffff6a8d150, t2=0x7ffff6a39540, loc1=27996512,
loc2=0) at ../../trunk/gcc/ipa-devirt.c:1051
1051 {
(gdb) call debug_tree(t1)
<function_type 0x7ffff6a8d150
type <void_type 0x7ffff6c50150 void VOID
align 8 symtab 0 alias set -1 structural equality
pointer_to_this <pointer_type 0x7ffff6c502a0>>
QI
size <integer_cst 0x7ffff6c37ca8 type <integer_type 0x7ffff6c3b2a0
bitsizetype> constant 8>
unit size <integer_cst 0x7ffff6c37cc0 type <integer_type 0x7ffff6c3b1f8
sizetype> constant 1>
align 8 symtab 0 alias set -1 structural equality
arg-types <tree_list 0x7ffff6a873e8
value <pointer_type 0x7ffff6a86738 type <record_type 0x7ffff6a867e0
st_parameter_dt>
unsigned DI
size <integer_cst 0x7ffff6c37bb8 constant 64>
unit size <integer_cst 0x7ffff6c37bd0 constant 8>
align 64 symtab 0 alias set 1 structural equality>
chain <tree_list 0x7ffff6c499b0 value <void_type 0x7ffff6c50150 void>>>
pointer_to_this <pointer_type 0x7ffff6aa19d8>>
(gdb) call debug_tree(t2)
<function_type 0x7ffff6a39540
type <void_type 0x7ffff6c50150 void VOID
align 8 symtab 0 alias set -1 structural equality
pointer_to_this <pointer_type 0x7ffff6c502a0>>
QI
size <integer_cst 0x7ffff6c37ca8 type <integer_type 0x7ffff6c3b2a0
bitsizetype> constant 8>
unit size <integer_cst 0x7ffff6c37cc0 type <integer_type 0x7ffff6c3b1f8
sizetype> constant 1>
align 8 symtab 0 alias set -1 structural equality
attributes <tree_list 0x7ffff6a3baf0
purpose <identifier_node 0x7ffff6c69af0 fn spec>
value <tree_list 0x7ffff6a3bac8
value <string_cst 0x7ffff6e26dc8 constant ".w">>>
arg-types <tree_list 0x7ffff6a3baa0
value <pointer_type 0x7ffff6a39498 type <record_type 0x7ffff6a393f0
__st_parameter_dt>
unsigned DI
size <integer_cst 0x7ffff6c37bb8 constant 64>
unit size <integer_cst 0x7ffff6c37bd0 constant 8>
align 64 symtab 0 alias set 6 structural equality>
chain <tree_list 0x7ffff6c499b0 value <void_type 0x7ffff6c50150 void>>>
pointer_to_this <pointer_type 0x7ffff6a44150>>
which looks quite different, but I lack the tree-foo to really decypher this.
More information about the Gcc-bugs
mailing list