public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/66283] New: [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK
@ 2015-05-25 23:22 gary at intrepid dot com
  2015-05-26 14:38 ` [Bug middle-end/66283] " gary at intrepid dot com
  2015-05-27 17:29 ` gary at intrepid dot com
  0 siblings, 2 replies; 3+ messages in thread
From: gary at intrepid dot com @ 2015-05-25 23:22 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66283

            Bug ID: 66283
           Summary: [ICE] [IA64] verify type mis-diagnosis: type variant
                    differs by TYPE_NO_FORCE_BLK
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gary at intrepid dot com
  Target Milestone: ---

This recent commit implemented additional type verification checks:

r223252 | hubicka | 2015-05-16 13:51:50 -0700 (Sat, 16 May 2015) | 3 lines

        * tree.c (verify_type_variant): Verify tree_base and type_common flags.
        (verify_type): Verify STRING_FLAG.

This triggers an ICE on IA64 when configured with --enable-checking and when
the test program below is compiled with "-g".  It may be possible to change
the test so that the declaration of "struct S" to asserts TYPE_NO_FORCE_BLK()
for a more common target like the x86_64, but I didn't try that.

typedef volatile struct S opaque_qualified_t;

struct S
{
   unsigned long _s1;
   int _s2;
};

void
proc (opaque_qualified_t *p __attribute__((unused)))
{
}

ice-no-force-blk.i: In function ‘proc’:
ice-no-force-blk.i:12:1: error: type variant differs by TYPE_NO_FORCE_BLK.
 }
  ^
 <record_type 0x2000000000b6eee0 S asm_written no-force-blk type_0 BLK
    size <integer_cst 0x2000000000a72388 type <integer_type 0x2000000000ab0150
bitsizetype> 
constant 128>
    unit size <integer_cst 0x2000000000a723a0 type <integer_type
0x2000000000ab00a8 sizetype> 
constant 16>
    align 64 symtab 12587232 alias set -1 canonical type 0x2000000000b6eee0
    fields <field_decl 0x2000000000b41858 _s1
        type <integer_type 0x2000000000ab0888 long unsigned int asm_written
public unsigned DI
            size <integer_cst 0x2000000000a72340 constant 64>
            unit size <integer_cst 0x2000000000a72358 constant 8>
            align 64 symtab 12587632 alias set -1 canonical type
0x2000000000ab0888 precision 64 min 
<integer_cst 0x2000000000a72610 0> max <integer_cst 0x2000000000b20520
18446744073709551615>

pointer_to_this <pointer_type 0x2000000000ab46e0>>
        unsigned DI file ice-no-force-blk.i line 5 col 18 size <integer_cst
0x2000000000a72340 64> 
unit size <integer_cst 0x2000000000a72358 8>
        align 64 offset_align 128
        offset <integer_cst 0x2000000000a72370 constant 0>
        bit offset <integer_cst 0x2000000000a723b8 constant 0> context
<record_type 0x2000000000b6eee0 
S>
        chain <field_decl 0x2000000000b418f0 _s2 type <integer_type
0x2000000000ab0690 int>

SI file ice-no-force-blk.i line 6 col 8
            size <integer_cst 0x2000000000a72580 constant 32>
            unit size <integer_cst 0x2000000000a72598 constant 4>
            align 32 offset_align 128 offset <integer_cst 0x2000000000a72370 0>
bit offset <integer_cst 
0x2000000000a72340 64> context <record_type 0x2000000000b6eee0 S>>> context
<translation_unit_decl 
0x2000000000a200f0 D.1470>
    chain <type_decl 0x2000000000b41728 D.1463>>
 <record_type 0x2000000000b6f030 opaque_qualified_t volatile BLK
    size <integer_cst 0x2000000000a72388 type <integer_type 0x2000000000ab0150
bitsizetype> 
constant 128>
    unit size <integer_cst 0x2000000000a723a0 type <integer_type
0x2000000000ab00a8 sizetype> 
constant 16>
    align 64 symtab 12587152 alias set -1 canonical type 0x2000000000b6ef88
    fields <field_decl 0x2000000000b41858 _s1
        type <integer_type 0x2000000000ab0888 long unsigned int asm_written
public unsigned DI
            size <integer_cst 0x2000000000a72340 constant 64>
            unit size <integer_cst 0x2000000000a72358 constant 8>
            align 64 symtab 12587632 alias set -1 canonical type
0x2000000000ab0888 precision 64 min 
<integer_cst 0x2000000000a72610 0> max <integer_cst 0x2000000000b20520
18446744073709551615>

pointer_to_this <pointer_type 0x2000000000ab46e0>>
        unsigned DI file ice-no-force-blk.i line 5 col 18 size <integer_cst
0x2000000000a72340 64> 
unit size <integer_cst 0x2000000000a72358 8>
        align 64 offset_align 128
        offset <integer_cst 0x2000000000a72370 constant 0>
        bit offset <integer_cst 0x2000000000a723b8 constant 0> context
<record_type 0x2000000000b6eee0 
S>
        chain <field_decl 0x2000000000b418f0 _s2 type <integer_type
0x2000000000ab0690 int>

SI file ice-no-force-blk.i line 6 col 8
            size <integer_cst 0x2000000000a72580 constant 32>
            unit size <integer_cst 0x2000000000a72598 constant 4>
            align 32 offset_align 128 offset <integer_cst 0x2000000000a72370 0>
bit offset <integer_cst 
0x2000000000a72340 64> context <record_type 0x2000000000b6eee0 S>>> context
<translation_unit_decl 
0x2000000000a200f0 D.1470>
    pointer_to_this <pointer_type 0x2000000000b6f570>>
ice-no-force-blk.i:12:1: internal compiler error: verify_type failed
0x40000000025159ff verify_type(tree_node const*)
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/tree.c:13209
0x4000000000ad3d4f gen_type_die_with_usage
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:20304
0x4000000000ad4b0f gen_type_die_with_usage
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:20391
0x4000000000ad572f gen_type_die
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:20488
0x4000000000adbfdf gen_decl_die
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21104
0x4000000000ac4d9f gen_subprogram_die
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:18859
0x4000000000adb0af gen_decl_die
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21018
0x4000000000adee0f dwarf2out_decl
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21451
0x4000000000adee7f dwarf2out_function_decl
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/dwarf2out.c:21459
0x4000000000c9fc0f rest_of_handle_final
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/final.c:4525
0x4000000000ca037f execute
        /eng/upc/dev/gary/gupc-dev/src/gupc/gcc/final.c:4567
>From gcc-bugs-return-487243-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Tue May 26 00:15:07 2015
Return-Path: <gcc-bugs-return-487243-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 1359 invoked by alias); 26 May 2015 00:15:07 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 1309 invoked by uid 48); 26 May 2015 00:15:02 -0000
From: "potswa at mac dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/66284] New: std::reference_wrapper is transparent to std::function::target_type
Date: Tue, 26 May 2015 00:15:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: new
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: libstdc++
X-Bugzilla-Version: 5.1.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: potswa at mac dot com
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Resolution:
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone
Message-ID: <bug-66284-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-05/txt/msg02083.txt.bz2
Content-length: 781

https://gcc.gnu.org/bugzilla/show_bug.cgi?idf284

            Bug ID: 66284
           Summary: std::reference_wrapper is transparent to
                    std::function::target_type
           Product: gcc
           Version: 5.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: potswa at mac dot com
  Target Milestone: ---

std::function elides reference_wrappers from the target. This is not
conforming.


#include <functional>
#include <cassert>

struct s { void operator () () {} } g;
std::function< void() > f = std::ref( g );

int main() {
    assert ( f.target< std::reference_wrapper< s > >() );
    assert ( ! f.target< s >() );
}


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug middle-end/66283] [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK
  2015-05-25 23:22 [Bug c/66283] New: [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK gary at intrepid dot com
@ 2015-05-26 14:38 ` gary at intrepid dot com
  2015-05-27 17:29 ` gary at intrepid dot com
  1 sibling, 0 replies; 3+ messages in thread
From: gary at intrepid dot com @ 2015-05-26 14:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66283

--- Comment #1 from Gary Funck <gary at intrepid dot com> ---
FYI, this also results in a bootstrap failure for C++ on IA64, when configured
with:

CFLAGS='-g3 -O0' \
CXXFLAGS='-g3 -O0' \
$src/configure \
  --prefix=$rls \
  --enable-checking \
  --enable-languages=c,c++

/eng/upc/dev/gary/gcc-trunk/bld/./gcc/xgcc -shared-libgcc
-B/eng/upc/dev/gary/gcc-trunk/bld/./gcc -nostdinc++
 -L/eng/upc/dev/gary/gcc-trunk/bld/ia64-unknown-linux-gnu/libstdc++-v3/src
-L/eng/upc/dev/gary/gcc-trunk/bld/
ia64-unknown-linux-gnu/libstdc++-v3/src/.libs
-L/eng/upc/dev/gary/gcc-trunk/bld/ia64-unknown-linux-gnu/libstd
c++-v3/libsupc++/.libs
-B/eng/upc/dev/gary/gcc-trunk/rls/ia64-unknown-linux-gnu/bin/
-B/eng/upc/dev/gary/gcc-
trunk/rls/ia64-unknown-linux-gnu/lib/ -isystem
/eng/upc/dev/gary/gcc-trunk/rls/ia64-unknown-linux-gnu/include
 -isystem /eng/upc/dev/gary/gcc-trunk/rls/ia64-unknown-linux-gnu/sys-include   
-x c++-header -nostdinc++ -O2
 -g3 -O0 -D_GNU_SOURCE 
-I/eng/upc/dev/gary/gcc-trunk/bld/ia64-unknown-linux-gnu/libstdc++-v3/include/ia64-un
known-linux-gnu
-I/eng/upc/dev/gary/gcc-trunk/bld/ia64-unknown-linux-gnu/libstdc++-v3/include
-I/eng/upc/dev/
gary/gcc-trunk/src/libstdc++-v3/libsupc++ -O2 -g -std=gnu++0x
/eng/upc/dev/gary/gcc-trunk/src/libstdc++-v3/in
clude/precompiled/stdc++.h \
        -o ia64-unknown-linux-gnu/bits/stdc++.h.gch/O2ggnu++0x.gch
In file included from /usr/include/bits/types.h:131:0,
                 from /usr/include/ctype.h:28,
                 from
/eng/upc/dev/gary/gcc-trunk/bld/ia64-unknown-linux-gnu/libstdc++-v3/include/cctype:42,
                 from
/eng/upc/dev/gary/gcc-trunk/src/libstdc++-v3/include/precompiled/stdc++.h:35:
/usr/include/bits/types.h:144:12: error: type variant differs by
TYPE_NO_FORCE_BLK.
 __STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs.  */
            ^
 <record_type 0x2000000000778928 ._0 asm_written no-force-blk type_5 BLK
    size <integer_cst 0x20000000005624f0 type <integer_type 0x20000000005a0150
bitsizetype> constant 64>
    unit size <integer_cst 0x2000000000562508 type <integer_type
0x20000000005a00a8 sizetype> constant 8>
    align 32 symtab 6757648 alias set -1 canonical type 0x2000000000778928
    fields <field_decl 0x2000000000655ad8 __val
        type <array_type 0x2000000000778b20 type <integer_type
0x20000000005a0690 int>
            asm_written no-force-blk BLK size <integer_cst 0x20000000005624f0
64> unit size <integer_cst 0x20
00000000562508 8>
            align 32 symtab 6757728 alias set -1 canonical type
0x2000000000778b20 domain <integer_type 0x200
0000000775400>>
        nonlocal decl_3 BLK file /usr/include/bits/types.h line 144 col 12 size
<integer_cst 0x20000000005624
f0 64> unit size <integer_cst 0x2000000000562508 8>
        align 32 offset_align 128
        offset <integer_cst 0x2000000000562520 constant 0>
        bit offset <integer_cst 0x2000000000562568 constant 0> context
<record_type 0x2000000000778928 ._0>
        chain <type_decl 0x2000000000655a40 ._0 type <record_type
0x20000000007789d0 ._0>
            nonlocal in_system_header decl_4 VOID file
/usr/include/bits/types.h line 144 col 12
            align 1 context <record_type 0x2000000000778928 ._0> result
<record_type 0x2000000000778928 ._0>
           >> context <translation_unit_decl 0x2000000000520078 D.1>
    full-name "struct<anonymous>"
    X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown
    chain <type_decl 0x20000000006559a8 ._0>>
 <record_type 0x20000000007789d0 ._0 type_5 BLK
    size <integer_cst 0x20000000005624f0 type <integer_type 0x20000000005a0150
bitsizetype> constant 64>
    unit size <integer_cst 0x2000000000562508 type <integer_type
0x20000000005a00a8 sizetype> constant 8>
    align 32 symtab 0 alias set -1 canonical type 0x2000000000778928
    fields <field_decl 0x2000000000655ad8 __val
        type <array_type 0x2000000000778b20 type <integer_type
0x20000000005a0690 int>
            asm_written no-force-blk BLK size <integer_cst 0x20000000005624f0
64> unit size <integer_cst 0x20
00000000562508 8>
            align 32 symtab 6757728 alias set -1 canonical type
0x2000000000778b20 domain <integer_type 0x200
0000000775400>>
        nonlocal decl_3 BLK file /usr/include/bits/types.h line 144 col 12 size
<integer_cst 0x20000000005624
f0 64> unit size <integer_cst 0x2000000000562508 8>
        align 32 offset_align 128
        offset <integer_cst 0x2000000000562520 constant 0>
        bit offset <integer_cst 0x2000000000562568 constant 0> context
<record_type 0x2000000000778928 ._0>
        chain <type_decl 0x2000000000655a40 ._0 type <record_type
0x20000000007789d0 ._0>
            nonlocal in_system_header decl_4 VOID file
/usr/include/bits/types.h line 144 col 12
            align 1 context <record_type 0x2000000000778928 ._0> result
<record_type 0x2000000000778928 ._0>
           >> context <translation_unit_decl 0x2000000000520078 D.1>
    full-name "struct<anonymous>"
    X() X(constX&) this=(X&) n_parents=0 use_template=0 interface-unknown
    chain <type_decl 0x20000000006559a8 ._0>>
/usr/include/bits/types.h:144:12: internal compiler error: verify_type failed
0x4000000002b2b9bf verify_type(tree_node const*)
        /eng/upc/dev/gary/gcc-trunk/src/gcc/tree.c:13277
0x4000000001128ddf gen_type_die_with_usage
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20250
0x400000000112a7bf gen_type_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20434
0x40000000011305df gen_decl_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20987
0x400000000112573f gen_member_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:19945
0x4000000001126f2f gen_struct_or_union_type_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20038
0x4000000001128c1f gen_tagged_type_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20227
0x4000000001129e7f gen_type_die_with_usage
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20381
0x400000000112a7bf gen_type_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20434
0x40000000011305df gen_decl_die
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:20987
0x4000000001133d4f dwarf2out_decl
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:21397
0x400000000113144f dwarf2out_type_decl
        /eng/upc/dev/gary/gcc-trunk/src/gcc/dwarf2out.c:21096
0x4000000001cd211f rest_of_type_compilation(tree_node*, int)
        /eng/upc/dev/gary/gcc-trunk/src/gcc/passes.c:309
0x400000000062880f finish_struct_1(tree_node*)
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/class.c:6723
0x400000000062b47f finish_struct(tree_node*, tree_node*)
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/class.c:6888
0x400000000074f7ef cp_parser_class_specifier_1
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/parser.c:19877
0x40000000007520ef cp_parser_class_specifier
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/parser.c:20105
0x400000000072d45f cp_parser_type_specifier
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/parser.c:14734
0x400000000071e51f cp_parser_decl_specifier_seq
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/parser.c:11965
0x400000000071c01f cp_parser_simple_declaration
        /eng/upc/dev/gary/gcc-trunk/src/gcc/cp/parser.c:11542


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug middle-end/66283] [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK
  2015-05-25 23:22 [Bug c/66283] New: [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK gary at intrepid dot com
  2015-05-26 14:38 ` [Bug middle-end/66283] " gary at intrepid dot com
@ 2015-05-27 17:29 ` gary at intrepid dot com
  1 sibling, 0 replies; 3+ messages in thread
From: gary at intrepid dot com @ 2015-05-27 17:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66283

Gary Funck <gary at intrepid dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #2 from Gary Funck <gary at intrepid dot com> ---
Duplicate

*** This bug has been marked as a duplicate of bug 66181 ***


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-05-27 17:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-25 23:22 [Bug c/66283] New: [ICE] [IA64] verify type mis-diagnosis: type variant differs by TYPE_NO_FORCE_BLK gary at intrepid dot com
2015-05-26 14:38 ` [Bug middle-end/66283] " gary at intrepid dot com
2015-05-27 17:29 ` gary at intrepid dot com

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