[Bug lto/92279] [10 Regression] ICE in error: non-trivial conversion in 'constructor' since r276416
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Nov 11 09:34:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92279
--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
> > context <record_type 0x7ffff76750a8 btConvexHullInternal>
> ...
> > context <record_type 0x7ffff7675738 btConvexHullInternal>>
>
> But whoever built the constructor with two differnt types did someting
> wrong.
>
I've probably got it:
$ $14 = void
(gdb) p debug_tree(lhs_type->type_common.context)
<record_type 0x7ffff76750a8 btConvexHullInternal cxx-odr-p DI
size <integer_cst 0x7ffff7864ba0 type <integer_type 0x7ffff78790a8
bitsizetype> constant 64>
unit-size <integer_cst 0x7ffff7864bb8 type <integer_type 0x7ffff7879000
sizetype> constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff76750a8
fields <field_decl 0x7ffff7673ed8 vertexList
type <pointer_type 0x7ffff7675150 type <record_type 0x7ffff76751f8
Vertex>
unsigned DI size <integer_cst 0x7ffff7864ba0 64> unit-size
<integer_cst 0x7ffff7864bb8 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1
structural-equality
pointer_to_this <pointer_type 0x7ffff76867e0> reference_to_this
<reference_type 0x7ffff7688f18>>
unsigned nonlocal DI ice9.ii:177:10 size <integer_cst 0x7ffff7864ba0
64> unit-size <integer_cst 0x7ffff7864bb8 8>
align:64 warn_if_not_align:0 offset_align 128
offset <integer_cst 0x7ffff7864bd0 constant 0>
bit-offset <integer_cst 0x7ffff7864c18 constant 0> context <record_type
0x7ffff76750a8 btConvexHullInternal>> context <namespace_decl 0x7ffff7667130
VHACD>
pointer_to_this <pointer_type 0x7ffff76a55e8>>
$ $13 = void
(gdb) p debug_tree(rhs1_type->type_common.context)
<record_type 0x7ffff7675738 btConvexHullInternal cxx-odr-p DI
size <integer_cst 0x7ffff7864ba0 type <integer_type 0x7ffff78790a8
bitsizetype> constant 64>
unit-size <integer_cst 0x7ffff7864bb8 type <integer_type 0x7ffff7879000
sizetype> constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7ffff7675738
fields <field_decl 0x7ffff76761c8 vertexList
type <pointer_type 0x7ffff76757e0 type <record_type 0x7ffff7675888
Vertex>
unsigned DI size <integer_cst 0x7ffff7864ba0 64> unit-size
<integer_cst 0x7ffff7864bb8 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1
structural-equality>
unsigned nonlocal DI ice5.ii:375:10 size <integer_cst 0x7ffff7864ba0
64> unit-size <integer_cst 0x7ffff7864bb8 8>
align:64 warn_if_not_align:0 offset_align 128
offset <integer_cst 0x7ffff7864bd0 constant 0>
bit-offset <integer_cst 0x7ffff7864c18 constant 0> context <record_type
0x7ffff7675738 btConvexHullInternal>> context <translation_unit_decl
0x7ffff786e2d0 ice5.ii>>
So one btConvexHullInternal type lives in a namespace VHACD and second one in
any. So the types have different ODR names..
More information about the Gcc-bugs
mailing list