[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-31 Thread ienkovich at gcc dot gnu.org
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=221788root=gccview=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


[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-31 Thread ienkovich at gcc dot gnu.org
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


[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-27 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65531

--- Comment #4 from Jan Hubicka hubicka at gcc dot gnu.org ---
Author: hubicka
Date: Fri Mar 27 15:19:35 2015
New Revision: 221736

URL: https://gcc.gnu.org/viewcvs?rev=221736root=gccview=rev
Log:
PR target/65531
* symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
comdat groups.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/symtab.c


[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-25 Thread ienkovich at gcc dot gnu.org
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.


[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-24 Thread ienkovich at gcc dot gnu.org
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.);


[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-24 Thread hubicka at gcc dot gnu.org
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.


[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-24 Thread ienkovich at gcc dot gnu.org
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