public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
@ 2013-11-13 14:12 reichelt at gcc dot gnu.org
  2013-11-13 15:37 ` [Bug c++/59111] " rguenth at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: reichelt at gcc dot gnu.org @ 2013-11-13 14:12 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

            Bug ID: 59111
           Summary: [4.9 Regression] [c++11] ICE on invalid usage of auto
                    in return type
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org

The following invalid code snippet (compiled with "-std=c++11") triggers an ICE
on trunk:

=====================
auto& foo();

int i = foo();
=====================

bug.cc:1:11: warning: 'foo' function uses 'auto' type specifier without
trailing return type [enabled by default]
 auto& foo();
           ^
bug.cc:3:13: internal compiler error: tree check: expected record_type or
union_type or qual_union_type, have template_type_parm in lookup_conversions,
at cp/search.c:2509
 int i = foo();
             ^
0xd3a614 tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../gcc/gcc/tree.c:9166
0x6bd9f7 tree_check3
        ../../gcc/gcc/tree.h:2746
0x6bd9f7 lookup_conversions(tree_node*)
        ../../gcc/gcc/cp/search.c:2509
0x5493a6 build_user_type_conversion_1
        ../../gcc/gcc/cp/call.c:3447
0x54a3c1 implicit_conversion
        ../../gcc/gcc/cp/call.c:1756
0x54ff6c can_convert_arg_bad(tree_node*, tree_node*, tree_node*, int, int)
        ../../gcc/gcc/cp/call.c:8960
0x677940 convert_for_assignment
        ../../gcc/gcc/cp/typeck.c:7992
0x5eff71 digest_init_r
        ../../gcc/gcc/cp/typeck2.c:1009
0x5f1dc2 digest_init_flags
        ../../gcc/gcc/cp/typeck2.c:1078
0x5f1dc2 store_init_value(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, int)
        ../../gcc/gcc/cp/typeck2.c:766
0x566066 check_initializer
        ../../gcc/gcc/cp/decl.c:5739
0x57909d cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
        ../../gcc/gcc/cp/decl.c:6358
0x666c11 cp_parser_init_declarator
        ../../gcc/gcc/cp/parser.c:16727
0x66837f cp_parser_simple_declaration
        ../../gcc/gcc/cp/parser.c:11118
0x64c7b0 cp_parser_block_declaration
        ../../gcc/gcc/cp/parser.c:10999
0x670477 cp_parser_declaration
        ../../gcc/gcc/cp/parser.c:10896
0x66f198 cp_parser_declaration_seq_opt
        ../../gcc/gcc/cp/parser.c:10782
0x670a3a cp_parser_translation_unit
        ../../gcc/gcc/cp/parser.c:4010
0x670a3a c_parse_file()
        ../../gcc/gcc/cp/parser.c:31187
0x791cd3 c_common_parse_file()
        ../../gcc/gcc/c-family/c-opts.c:1055
Please submit a full bug report, [etc.]


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

* [Bug c++/59111] [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
  2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
@ 2013-11-13 15:37 ` rguenth at gcc dot gnu.org
  2013-11-21 14:37 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-11-13 15:37 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-invalid-code
   Target Milestone|---                         |4.9.0


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

* [Bug c++/59111] [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
  2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
  2013-11-13 15:37 ` [Bug c++/59111] " rguenth at gcc dot gnu.org
@ 2013-11-21 14:37 ` rguenth at gcc dot gnu.org
  2013-12-18 14:49 ` mpolacek at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-11-21 14:37 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


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

* [Bug c++/59111] [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
  2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
  2013-11-13 15:37 ` [Bug c++/59111] " rguenth at gcc dot gnu.org
  2013-11-21 14:37 ` rguenth at gcc dot gnu.org
@ 2013-12-18 14:49 ` mpolacek at gcc dot gnu.org
  2013-12-18 14:50 ` mpolacek at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-18 14:49 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
*** Bug 59110 has been marked as a duplicate of this bug. ***


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

* [Bug c++/59111] [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
  2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2013-12-18 14:49 ` mpolacek at gcc dot gnu.org
@ 2013-12-18 14:50 ` mpolacek at gcc dot gnu.org
  2013-12-23 12:15 ` mpolacek at gcc dot gnu.org
  2013-12-23 12:35 ` mpolacek at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-18 14:50 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-12-18
                 CC|                            |mpolacek at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Hopefully just 
--- a/gcc/cp/search.c
+++ b/gcc/cp/search.c
@@ -2506,7 +2506,7 @@ lookup_conversions (tree type)
   tree list = NULL_TREE;

   complete_type (type);
-  if (!TYPE_BINFO (type))
+  if (!RECORD_OR_UNION_TYPE_P (type) || !TYPE_BINFO (type))
     return NULL_TREE;

   lookup_conversions_r (TYPE_BINFO (type), 0, 0,
will do...


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

* [Bug c++/59111] [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
  2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2013-12-18 14:50 ` mpolacek at gcc dot gnu.org
@ 2013-12-23 12:15 ` mpolacek at gcc dot gnu.org
  2013-12-23 12:35 ` mpolacek at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-23 12:15 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Mon Dec 23 12:14:56 2013
New Revision: 206177

URL: http://gcc.gnu.org/viewcvs?rev=206177&root=gcc&view=rev
Log:
    PR c++/59111
cp/
    * search.c (lookup_conversions): Return NULL_TREE if !CLASS_TYPE_P.
testsuite/
    * g++.dg/cpp0x/pr59111.C: New test.
    * g++.dg/cpp1y/pr59110.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/cpp0x/pr59111.C
    trunk/gcc/testsuite/g++.dg/cpp1y/pr59110.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/search.c
    trunk/gcc/testsuite/ChangeLog


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

* [Bug c++/59111] [4.9 Regression] [c++11] ICE on invalid usage of auto in return type
  2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2013-12-23 12:15 ` mpolacek at gcc dot gnu.org
@ 2013-12-23 12:35 ` mpolacek at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2013-12-23 12:35 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59111

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
           Assignee|unassigned at gcc dot gnu.org      |mpolacek at gcc dot gnu.org

--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Fixed.


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

end of thread, other threads:[~2013-12-23 12:35 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-13 14:12 [Bug c++/59111] New: [4.9 Regression] [c++11] ICE on invalid usage of auto in return type reichelt at gcc dot gnu.org
2013-11-13 15:37 ` [Bug c++/59111] " rguenth at gcc dot gnu.org
2013-11-21 14:37 ` rguenth at gcc dot gnu.org
2013-12-18 14:49 ` mpolacek at gcc dot gnu.org
2013-12-18 14:50 ` mpolacek at gcc dot gnu.org
2013-12-23 12:15 ` mpolacek at gcc dot gnu.org
2013-12-23 12:35 ` mpolacek 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).