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).