public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
@ 2015-03-23 22:49 zsojka at seznam dot cz
2015-03-24 9:05 ` [Bug target/65531] " ienkovich at gcc dot gnu.org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: zsojka at seznam dot cz @ 2015-03-23 22:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
Bug ID: 65531
Summary: ICE: symtab_node::verify failed: Two symbols with same
comdat_group are not linked by the same_comdat_group
list. with -fcheck-pointer-bounds -mmpx
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: zsojka at seznam dot cz
Created attachment 35118
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35118&action=edit
reduced testcase
Compiler output:
$ gcc -fcheck-pointer-bounds -mmpx testcase.C
testcase.C:10:4: error: Two symbols with same comdat_group are not linked by
the same_comdat_group list.
S s;
^
_ZN1SD1Ev.chkp/11 (S::~S(#'pointer_bounds_type' not supported by
dump_type#<type error>, void, ...)) @0x7f52d8b0f310
Type: function definition analyzed alias cpp_implicit_alias
Visibility: external public weak comdat comdat_group:_ZN1SD5Ev one_only
Same comdat group as: _ZN1SD1Ev/2
Address is taken.
References: _ZN1SD2Ev.chkp/10 (alias)
Referring: _ZN1SD1Ev/2 (chkp)
Availability: available
First run: 0
Function flags:
Called by:
Calls:
Is instrumented version.
_ZN1SD2Ev.chkp/10 (S::~S(#'pointer_bounds_type' not supported by
dump_type#<type error>, void, ...)) @0x7f52d8b0f188
Type: function definition analyzed
Visibility: external public weak comdat comdat_group:_ZN1SD5Ev one_only
artificial
Same comdat group as: _ZN1SD2Ev/1
Address is taken.
References:
Referring: _ZN1SD1Ev.chkp/11 (alias)_ZN1SD2Ev/1 (chkp)
Availability: available
First run: 0
Function flags: body
Called by: _ZN1SD2Ev/1 (1.00 per call)
Calls:
Is instrumented version.
testcase.C:10:4: internal compiler error: symtab_node::verify failed
0x9dc3c4 symtab_node::verify_symtab_nodes()
/mnt/svn/gcc-trunk/gcc/symtab.c:1140
0xc28668 symbol_table::remove_unreachable_nodes(_IO_FILE*)
/mnt/svn/gcc-trunk/gcc/ipa.c:686
0xd0d4bd execute_todo
/mnt/svn/gcc-trunk/gcc/passes.c:2023
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ gcc -v
Using built-in specs.
COLLECT_GCC=/mnt/svn/gcc-trunk/binary-latest/bin/gcc
COLLECT_LTO_WRAPPER=/mnt/svn/gcc-trunk/binary-221530-lto-fortran-checking-yes-rtl-df/libexec/gcc/x86_64-unknown-linux-gnu/5.0.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /mnt/svn/gcc-trunk//configure --enable-checking=yes,rtl,df
--enable-languages=c,c++,lto,fortran
--prefix=/mnt/svn/gcc-trunk/binary-221530-lto-fortran-checking-yes-rtl-df/
--without-cloog --without-ppl
Thread model: posix
gcc version 5.0.0 20150320 (experimental) (GCC)
Tested revisions:
r221530 - ICE
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/65531] ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
@ 2015-03-24 9:05 ` ienkovich at gcc dot gnu.org
2015-03-24 11:48 ` ienkovich at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-03-24 9:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
ienkovich at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2015-03-24
CC| |ienkovich at gcc dot gnu.org
Assignee|unassigned at gcc dot gnu.org |ienkovich at gcc dot gnu.org
Ever confirmed|0 |1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/65531] ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
2015-03-24 9:05 ` [Bug target/65531] " ienkovich at gcc dot gnu.org
@ 2015-03-24 11:48 ` ienkovich at gcc dot gnu.org
2015-03-24 17:52 ` hubicka at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-03-24 11:48 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
ienkovich at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |hubicka at gcc dot gnu.org
--- Comment #1 from ienkovich at gcc dot gnu.org ---
same_comdat_group verification loop looks weird.
for (s = (*entry)->same_comdat_group; s != NULL && s != node; s =
s->same_comdat_group)
if (!s || s == *entry)
The '!s' condition has no chance to work due to 's != NULL' condition. Thus
verifier doesn't catch cases when there are two nodes with the same comdat
group not actually linked with same_comdat_group. Is it expected behavior?
With a verifier patch applied I have this test failed with no
'-fcheck-pointer-bounds -mmpx':
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 88e168b..395cfe4 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -1131,7 +1131,7 @@ symtab_node::verify_symtab_nodes (void)
if (!existed)
*entry = node;
else
- for (s = (*entry)->same_comdat_group; s != NULL && s != node; s =
s->same_comdat_group)
+ for (s = (*entry)->same_comdat_group; s != node; s =
s->same_comdat_group)
if (!s || s == *entry)
{
error ("Two symbols with same comdat_group are not linked by
the same_comdat_group list.");
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/65531] ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
2015-03-24 9:05 ` [Bug target/65531] " ienkovich at gcc dot gnu.org
2015-03-24 11:48 ` ienkovich at gcc dot gnu.org
@ 2015-03-24 17:52 ` hubicka at gcc dot gnu.org
2015-03-25 15:49 ` ienkovich at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: hubicka at gcc dot gnu.org @ 2015-03-24 17:52 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Hmm, there is missing empty statement after the for loop.
There are two external symbols where we do not really build comdat groups
(maybe we could now as they preserve little bit of useful info). So i guess I
will just relax checker for that.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/65531] ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
` (2 preceding siblings ...)
2015-03-24 17:52 ` hubicka at gcc dot gnu.org
@ 2015-03-25 15:49 ` ienkovich at gcc dot gnu.org
2015-03-31 8:53 ` ienkovich at gcc dot gnu.org
2015-03-31 9:25 ` ienkovich at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-03-25 15:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
--- Comment #3 from ienkovich at gcc dot gnu.org ---
When instrumentation clone is created for a node with a comdat group, it gets
the same comdat group and is linked with the original node via
same_comdat_group. Do I need to change this behavior to pass verification (e.g.
don't set same_comdat_group for the clone in case the original node has NULL
for same_comdat_group and is not a function definition)?
Probably would be easier to just always have same_comdat_group list for nodes
with same comdat_group with no exceptions.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/65531] ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
` (3 preceding siblings ...)
2015-03-25 15:49 ` ienkovich at gcc dot gnu.org
@ 2015-03-31 8:53 ` ienkovich at gcc dot gnu.org
2015-03-31 9:25 ` ienkovich at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-03-31 8:53 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
--- Comment #5 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
Author: ienkovich
Date: Tue Mar 31 08:29:28 2015
New Revision: 221788
URL: https://gcc.gnu.org/viewcvs?rev=221788&root=gcc&view=rev
Log:
gcc/
PR target/65531
* ipa-chkp.c (chkp_maybe_create_clone): Don't set
same_comdat_group for external symbols.
* symtab.c (symtab_node::verify_symtab_nodes): Avoid
infinite same_comdat_group traversal loop.
gcc/testsuite/
PR target/65531
* gcc.target/i386/mpx/pr65531.cc: New.
Added:
trunk/gcc/testsuite/gcc.target/i386/mpx/pr65531.cc
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-chkp.c
trunk/gcc/symtab.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug target/65531] ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
` (4 preceding siblings ...)
2015-03-31 8:53 ` ienkovich at gcc dot gnu.org
@ 2015-03-31 9:25 ` ienkovich at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: ienkovich at gcc dot gnu.org @ 2015-03-31 9:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531
Ilya Enkovich <ienkovich at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #6 from Ilya Enkovich <ienkovich at gcc dot gnu.org> ---
Fixed
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-03-31 8:31 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-23 22:49 [Bug target/65531] New: ICE: symtab_node::verify failed: Two symbols with same comdat_group are not linked by the same_comdat_group list. with -fcheck-pointer-bounds -mmpx zsojka at seznam dot cz
2015-03-24 9:05 ` [Bug target/65531] " ienkovich at gcc dot gnu.org
2015-03-24 11:48 ` ienkovich at gcc dot gnu.org
2015-03-24 17:52 ` hubicka at gcc dot gnu.org
2015-03-25 15:49 ` ienkovich at gcc dot gnu.org
2015-03-31 8:53 ` ienkovich at gcc dot gnu.org
2015-03-31 9:25 ` ienkovich at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).