17851 – [3.4/4.0 regression] Misleading diagnostic for invalid function declarations with undeclared types (original) (raw)
| Description Volker Reichelt 2004-10-05 20:05:18 UTC Since gcc 3.4.0 I get an error message which is not very helpful for the following invalid code snippet: ================================ struct A { int operator[] (size_t); }; struct B { int foo(size_t); }; ================================ err.cc:3: error: declaration of `operator[]' as non-function err.cc:3: error: expected `;' before '(' token err.cc:8: error: expected `;' before '(' token With gcc 3.3.5 and before I get: err.cc:3: error: `size_t' was not declared in this scope err.cc:3: error: invalid data member initialization err.cc:3: error: (use `=' to initialize static data members) err.cc:3: error: declaration of `operator[]' as non-function err.cc:8: error: `size_t' was not declared in this scope err.cc:8: error: invalid data member initialization which says what's wrong: `size_t' was not declared in this scope. Comment 1 Drea Pinski 2004-10-05 20:16:40 UTC Confirmed, note I found another bug in that we now produce a werid quoting, see PR 17852. Comment 2 Volker Reichelt 2004-10-12 23:07:13 UTC Fixed with Mark's patch for PR 15786. With mainline I now get: err.cc:3: error: `size_t' has not been declared err.cc:8: error: `size_t' has not been declared | | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |