Steps to reproduce:
1. Create a file error.cpp containing

class Foo
{
public:
  Foo* myMethod(Bar bar);
};

2. Compile with 
$ gcc error.cpp

Expected Results:
error.cpp:4: error: type Bar is undefined.

Actual Results:
error.cpp:4: error: expected ‘;’ before ‘(’ token

Notes:
The error message is wrong and misleading.

Version info:
$ gcc -v -save-temps error.cpp 
i686-apple-darwin9-gcc-4.0.1: gcc: No such file or directory
Using built-in specs.
Target: i686-apple-darwin9
Configured with: /var/tmp/gcc/gcc-5490~1/src/configure --disable-checking
-enable-werror --prefix=/usr --mandir=/share/man
--enable-languages=c,objc,c++,obj-c++
--program-transform-name=/^[cg][^.-]*$/s/$/-4.0/
--with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib
--build=i686-apple-darwin9 --with-arch=apple --with-tune=generic
--host=i686-apple-darwin9 --target=i686-apple-darwin9
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5490)
 /usr/libexec/gcc/i686-apple-darwin9/4.0.1/cc1plus -E -quiet -v -D__DYNAMIC__
error.cpp -fPIC -mmacosx-version-min=10.5.8 -mtune=generic -march=apple
-fpch-preprocess -D__private_extern__=extern -o error.ii
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory
"/usr/lib/gcc/i686-apple-darwin9/4.0.1/../../../../i686-apple-darwin9/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.0.0
 /usr/include/c++/4.0.0/i686-apple-darwin9
 /usr/include/c++/4.0.0/backward
 /usr/lib/gcc/i686-apple-darwin9/4.0.1/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.
 /usr/libexec/gcc/i686-apple-darwin9/4.0.1/cc1plus -fpreprocessed error.ii
-fPIC -quiet -dumpbase error.cpp -mmacosx-version-min=10.5.8 -mtune=generic
-march=apple -auxbase error -version -D__private_extern__=extern -o error.s
GNU C++ version 4.0.1 (Apple Inc. build 5490) (i686-apple-darwin9)
        compiled by GNU C version 4.0.1 (Apple Inc. build 5490).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: d717d63b348495df150b35f29da70e48
error.cpp:4: error: expected ‘;’ before ‘(’ token


-- 
           Summary: Cryptic error message when type is not defined.
           Product: gcc
           Version: 4.0.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tobias dot hahn at ableton dot com


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

Reply via email to