c++/10618: [diagnostic] Error message for function declarations with invalid return type could be improved

giovannibajo@libero.it giovannibajo@libero.it
Sun May 4 10:24:00 GMT 2003


>Number:         10618
>Category:       c++
>Synopsis:       [diagnostic] Error message for function declarations with invalid return type could be improved
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sun May 04 10:16:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Giovanni Bajo
>Release:        3.4 CVS 20030503
>Organization:
>Environment:
i686-pc-cygwin
>Description:
Look at this:

---------------------------------------
template <class T>
struct A
{
};

struct B
{
};


template <class T> 
A<T>::k func1(); 

B::k func2();
---------------------------------------
pr10615.cpp:12: error: expected function-definition
pr10615.cpp:14: error: expected constructor, destructor, or type conversion
pr10615.cpp:14: error: expected `,' or `;'

(note: this code ICEs on 3.3, but there's already a PR for it, c++/10617)

I think the error message should be improved since it is
a bit confusing right now. This is for instance what I get with Comeau/EDG on the same snippet:


"pr10615.cpp", line 12: error: nontype "A<T>::k [with T=T]" is not a type name
  A<T>::k func1();
  ^

"pr10615.cpp", line 14: error: class "B" has no member "k"
  B::k func2();
     ^
>How-To-Repeat:
Compile the above code
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list