public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/18368] New: C++ error message regression
@ 2004-11-08  4:45 sabre at nondot dot org
  2004-11-08  4:47 ` [Bug c++/18368] " dberlin at dberlin dot org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: sabre at nondot dot org @ 2004-11-08  4:45 UTC (permalink / raw)
  To: gcc-bugs

On this c++ code:

struct C {
  struct foo { int A; }
  void method();
};

G++ 3.4 and above print the useless error message:

t.cpp:3: error: new types may not be defined in a return type
t.cpp:3: error: two or more data types in declaration of `method'

G++ 3.3 prints something like this (which is actually useful):

t.cpp:2: error: semicolon missing after declaration of `foo'
t.cpp:2: error: ISO C++ forbids defining types within return type
t.cpp:2: error: two or more data types in declaration of `method'
t.cpp:2: error: semicolon missing after declaration of `struct foo'

This probably also happens at global scope.

-Chris

-- 
           Summary: C++ error message regression
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: sabre at nondot dot org
                CC: gcc-bugs at gcc dot gnu dot org


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


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

* Re: [Bug c++/18368] New: C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
  2004-11-08  4:47 ` [Bug c++/18368] " dberlin at dberlin dot org
@ 2004-11-08  4:47 ` Daniel Berlin
  2004-11-08  4:55 ` [Bug c++/18368] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: Daniel Berlin @ 2004-11-08  4:47 UTC (permalink / raw)
  To: sabre at nondot dot org; +Cc: gcc-bugs


Yes, it happens ta global scope too.

struct foo {}
void method () {}
will give the same error

On Sun, 8 Nov 2004, sabre at nondot dot org wrote:

> On this c++ code:
>
> struct C {
>  struct foo { int A; }
>  void method();
> };
> This probably also happens at global scope.
> -Chris


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

* [Bug c++/18368] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
@ 2004-11-08  4:47 ` dberlin at dberlin dot org
  2004-11-08  4:47 ` [Bug c++/18368] New: " Daniel Berlin
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: dberlin at dberlin dot org @ 2004-11-08  4:47 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dberlin at dberlin dot org  2004-11-08 04:47 -------
Subject: Re:  New: C++ error message regression


Yes, it happens ta global scope too.

struct foo {}
void method () {}
will give the same error

On Sun, 8 Nov 2004, sabre at nondot dot org wrote:

> On this c++ code:
>
> struct C {
>  struct foo { int A; }
>  void method();
> };
> This probably also happens at global scope.
> -Chris


-- 


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


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

* [Bug c++/18368] [3.4/4.0 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
  2004-11-08  4:47 ` [Bug c++/18368] " dberlin at dberlin dot org
  2004-11-08  4:47 ` [Bug c++/18368] New: " Daniel Berlin
@ 2004-11-08  4:55 ` pinskia at gcc dot gnu dot org
  2004-11-27 17:12 ` mmitchel at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-08  4:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-08 04:55 -------
Confirmed, but the error message to me is clear (maybe I have read the error message too much).
When I said there was most likely a dup, I was thinking of a related case, see PR 16189.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |diagnostic
   Last reconfirmed|0000-00-00 00:00:00         |2004-11-08 04:55:37
               date|                            |
            Summary|C++ error message regression|[3.4/4.0 Regression] C++
                   |                            |error message regression
   Target Milestone|---                         |3.4.4


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


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

* [Bug c++/18368] [3.4/4.0 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (2 preceding siblings ...)
  2004-11-08  4:55 ` [Bug c++/18368] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
@ 2004-11-27 17:12 ` mmitchel at gcc dot gnu dot org
  2004-11-29 20:11 ` cvs-commit at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-11-27 17:12 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |mark at codesourcery dot com
                   |dot org                     |
             Status|NEW                         |ASSIGNED


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


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

* [Bug c++/18368] [3.4/4.0 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (3 preceding siblings ...)
  2004-11-27 17:12 ` mmitchel at gcc dot gnu dot org
@ 2004-11-29 20:11 ` cvs-commit at gcc dot gnu dot org
  2004-11-29 20:23 ` [Bug c++/18368] [3.4 " mmitchel at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-11-29 20:11 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-11-29 20:10 -------
Subject: Bug 18368

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	mmitchel@gcc.gnu.org	2004-11-29 20:10:18

Modified files:
	gcc/testsuite  : ChangeLog 
	gcc/cp         : ChangeLog cp-tree.def cp-tree.h decl.c error.c 
	                 friend.c parser.c pt.c 
	gcc/testsuite/g++.old-deja/g++.brendan: crash16.C 
	gcc/testsuite/g++.old-deja/g++.law: ctors5.C 
	gcc/testsuite/g++.old-deja/g++.other: crash25.C 
Added files:
	gcc/testsuite/g++.dg/template: error16.C crash29.C 

Log message:
	PR c++/18368
	* parser.c (cp_parser_check_for_definition_in_return_type): Take
	the defined type as a parameter, and inform the user about the
	possibility of a missing semicolon.
	(cp_parser_explicit_instantiation): Adjust call to
	cp_parser_check_for_definition_in_return_type.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_member_declaration): Likewise.
	
	PR c++/18674
	* cp-tree.def (TYPENAME_TYPE): Remove discussion of implicit
	typename from comments.
	* cp-tree.h (TYPENAME_IS_ENUM_P): New macro.
	(TYPENAME_IS_CLASS_P): Likewise.
	(make_typename_type): Change prototype.
	* decl.c (struct_typename_info): New type.
	(typename_compare): Expect the second argument to be a
	typename_info, not a tree.
	(build_typename_type): Add tag_type parameter.  Do not create a
	new type until necessary.
	(make_typename_type): Add tag_type parameter.
	* error.c (TYPENAME_TYPE): Print tags other than "typename" if
	appropriate.
	* friend.c (make_friend_class): Adjust call to make_typename_type.
	* parser.c (cp_parser_make_typename_type): Likewise.
	(cp_parser_primary_expression): Adjust call to
	cp_parser_lookup_name.
	(cp_parser_unqualified_id): Adjust calls to cp_parser_class_name.
	(cp_parser_class_or_namespace_name): Likewise.
	(cp_parser_postfix_expression): Adjust calls to
	make_typename_type.
	(cp_parser_mem_initializer_id): Adjust calls to
	cp_parser_class_name.
	(cp_parser_type_parameter): Adjust calls to cp_parser_lookup_name.
	(cp_parser_template_name): Likewise.
	(cp_parser_template_argument): Likewise.
	(cp_parser_type_name): Adjust call to cp_parser_class_name.
	(cp_parser_elaborated_type_specifier): Adjust calls to
	make_typename_type and cp_parser_lookup_name.
	(cp_parser_namespace_name): Likewise.
	(cp_parser_class_name): Replace type_p parameter with tag_type.
	Adjust calls to make_typename_type and cp_parser_lookup_name.
	(cp_parser_class_head): Adjust calls to cp_parser_class_name.
	(cp_parser_base_specifier): Likewise.
	(cp_parser_lookup_name): Replace is_type parameter with tag_type.
	Adjust calls to make_typename_type and lookup_qualified_name.
	(cp_parser_lookup_name_simple): Adjust call to
	cp_parser_lookup_name.
	(cp_parser_constructor_declarator_p): Adjust call to
	cp_parser_class_name.
	* pt.c (convert_template_argument): Adjust all to
	make_typename_type.
	(tsubst_decl): Do not pre-substitute the type of the declaration.
	(tsubst): Hand off declarations more quickly.  Adjust call to
	make_typename_type.
	
	PR c++/18512
	* parser.c (cp_parser_postfix_dot_deref_expression): Robustify.
	
	PR c++/18674
	* g++.old-deja/g++.brendan/crash16.C: Adjust error messages.
	* g++.old-deja/g++.law/ctors5.C: Likewise.
	* g++.old-deja/g++.other/crash25.C: Likewise.
	
	PR c++/18674
	* g++.dg/template/error16.C: New test.
	
	PR c++/18512
	* g++.dg/template/crash29.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.4679&r2=1.4680
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/error16.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/crash29.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.4504&r2=1.4505
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.def.diff?cvsroot=gcc&r1=1.90&r2=1.91
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.1076&r2=1.1077
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl.c.diff?cvsroot=gcc&r1=1.1336&r2=1.1337
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/error.c.diff?cvsroot=gcc&r1=1.272&r2=1.273
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/friend.c.diff?cvsroot=gcc&r1=1.102&r2=1.103
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&r1=1.283&r2=1.284
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&r1=1.951&r2=1.952
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C.diff?cvsroot=gcc&r1=1.5&r2=1.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.old-deja/g++.law/ctors5.C.diff?cvsroot=gcc&r1=1.5&r2=1.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.old-deja/g++.other/crash25.C.diff?cvsroot=gcc&r1=1.6&r2=1.7



-- 


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


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

* [Bug c++/18368] [3.4 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (4 preceding siblings ...)
  2004-11-29 20:11 ` cvs-commit at gcc dot gnu dot org
@ 2004-11-29 20:23 ` mmitchel at gcc dot gnu dot org
  2005-05-19 17:24 ` mmitchel at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-11-29 20:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-11-29 20:23 -------
Fixed in 4.0.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[3.4/4.0 Regression] C++    |[3.4 Regression] C++ error
                   |error message regression    |message regression


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


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

* [Bug c++/18368] [3.4 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (5 preceding siblings ...)
  2004-11-29 20:23 ` [Bug c++/18368] [3.4 " mmitchel at gcc dot gnu dot org
@ 2005-05-19 17:24 ` mmitchel at gcc dot gnu dot org
  2005-09-01 14:56 ` reichelt at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-05-19 17:24 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.4.4                       |3.4.5


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


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

* [Bug c++/18368] [3.4 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (6 preceding siblings ...)
  2005-05-19 17:24 ` mmitchel at gcc dot gnu dot org
@ 2005-09-01 14:56 ` reichelt at gcc dot gnu dot org
  2005-09-17 21:57 ` cvs-commit at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2005-09-01 14:56 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2005-09-01 14:56 -------
Taking care of the backport to the 3.4 branch.


-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|mark at codesourcery dot com|reichelt at gcc dot gnu dot
                   |                            |org
                URL|                            |http://gcc.gnu.org/ml/gcc-
                   |                            |patches/2005-
                   |                            |09/msg00033.html
           Keywords|                            |patch


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


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

* [Bug c++/18368] [3.4 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (7 preceding siblings ...)
  2005-09-01 14:56 ` reichelt at gcc dot gnu dot org
@ 2005-09-17 21:57 ` cvs-commit at gcc dot gnu dot org
  2005-09-17 22:05 ` cvs-commit at gcc dot gnu dot org
  2005-09-17 22:07 ` reichelt at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-09-17 21:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-17 21:57 -------
Subject: Bug 18368

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	reichelt@gcc.gnu.org	2005-09-17 21:57:26

Modified files:
	gcc/cp         : ChangeLog parser.c 
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/g++.dg/other: semicolon.C 

Log message:
	Backport:
	
	2004-11-27  Mark Mitchell  <mark@codesourcery.com>
	PR c++/18368
	* parser.c (cp_parser_check_for_definition_in_return_type): Take
	the defined type as a parameter, and inform the user about the
	possibility of a missing semicolon.
	(cp_parser_explicit_instantiation): Adjust call to
	cp_parser_check_for_definition_in_return_type.
	(cp_parser_init_declarator): Likewise.
	(cp_parser_member_declaration): Likewise.
	
	PR c++/18368
	* g++.dg/other/semicolon.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.241&r2=1.3892.2.242
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/parser.c.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.157.2.62&r2=1.157.2.63
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3389.2.435&r2=1.3389.2.436
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/other/semicolon.C.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1



-- 


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


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

* [Bug c++/18368] [3.4 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (8 preceding siblings ...)
  2005-09-17 21:57 ` cvs-commit at gcc dot gnu dot org
@ 2005-09-17 22:05 ` cvs-commit at gcc dot gnu dot org
  2005-09-17 22:07 ` reichelt at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-09-17 22:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-17 22:05 -------
Subject: Bug 18368

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	reichelt@gcc.gnu.org	2005-09-17 22:05:39

Modified files:
	gcc/testsuite  : ChangeLog 
Added files:
	gcc/testsuite/g++.dg/other: semicolon.C 

Log message:
	PR c++/18368
	* g++.dg/other/semicolon.C: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.6073&r2=1.6074
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/other/semicolon.C.diff?cvsroot=gcc&r1=1.1&r2=1.2



-- 


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


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

* [Bug c++/18368] [3.4 Regression] C++ error message regression
  2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
                   ` (9 preceding siblings ...)
  2005-09-17 22:05 ` cvs-commit at gcc dot gnu dot org
@ 2005-09-17 22:07 ` reichelt at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: reichelt at gcc dot gnu dot org @ 2005-09-17 22:07 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From reichelt at gcc dot gnu dot org  2005-09-17 22:07 -------
This is now fixed also on the 3.4 branch.
Testcase applied to 3.4 branch and mainline.
Waiting for the 4.0 branch to thaw before committing testcase there.
Keeping PR open until testcase is committed to 4.0 branch.


-- 


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


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

end of thread, other threads:[~2005-09-17 22:07 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-08  4:45 [Bug c++/18368] New: C++ error message regression sabre at nondot dot org
2004-11-08  4:47 ` [Bug c++/18368] " dberlin at dberlin dot org
2004-11-08  4:47 ` [Bug c++/18368] New: " Daniel Berlin
2004-11-08  4:55 ` [Bug c++/18368] [3.4/4.0 Regression] " pinskia at gcc dot gnu dot org
2004-11-27 17:12 ` mmitchel at gcc dot gnu dot org
2004-11-29 20:11 ` cvs-commit at gcc dot gnu dot org
2004-11-29 20:23 ` [Bug c++/18368] [3.4 " mmitchel at gcc dot gnu dot org
2005-05-19 17:24 ` mmitchel at gcc dot gnu dot org
2005-09-01 14:56 ` reichelt at gcc dot gnu dot org
2005-09-17 21:57 ` cvs-commit at gcc dot gnu dot org
2005-09-17 22:05 ` cvs-commit at gcc dot gnu dot org
2005-09-17 22:07 ` reichelt at gcc dot gnu dot 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).