public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/95659] New: Inconsistent error message in "default argument missing for parameter"
@ 2020-06-12 17:32 haoxintu at gmail dot com
2020-06-18 11:34 ` [Bug c++/95659] " redi at gcc dot gnu.org
2024-05-09 9:09 ` redi at gcc dot gnu.org
0 siblings, 2 replies; 3+ messages in thread
From: haoxintu at gmail dot com @ 2020-06-12 17:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95659
Bug ID: 95659
Summary: Inconsistent error message in "default argument
missing for parameter"
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: haoxintu at gmail dot com
Target Milestone: ---
$cat bug.cc
int a;
long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
long foo2 ( void = a, double param2){ }
In gcc-trunk
$g++-trunk -w -c -std=c++14 bug.cc
bug.cc:2:41: error: cannot declare a parameter with ‘decltype(auto)’
2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
| ^~~~~~~~~~~~~~~
bug.cc:2:14: error: invalid use of type ‘void’ in parameter declaration
2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
| ^~~~~~~~~
bug.cc:3:14: error: invalid use of type ‘void’ in parameter declaration
3 | long foo2 ( void = a, double param2){ }
| ^~~~~~~~~
bug.cc:3:33: error: default argument missing for parameter 2 of ‘long int
foo2(<type error>, double)’
3 | long foo2 ( void = a, double param2){ }
| ~~~~~~~~^~~~~~
bug.cc:3:14: note: ...following parameter 1 which has a default argument
3 | long foo2 ( void = a, double param2){ }
| ^~~~~~~~~
GCC-trunk misses the "default argument missing for parameter" error message in
function "foo1()" but gives the message in function "foo2()".
In other GCC versions, they have consitent results, for example in GCC-10
$g++-10 -w -c -std=c++14 bug.cc
bug.cc:2:41: error: cannot declare a parameter with ‘decltype(auto)’
2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
| ^~~~~~~~~~~~~~~
bug.cc:2:14: error: invalid use of type ‘void’ in parameter declaration
2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
| ^~~~~~~~~
bug.cc:2:33: error: default argument missing for parameter 2 of ‘long int
foo1(<type error>, double)’
2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
| ~~~~~~~~^~~~~~
bug.cc:2:14: note: ...following parameter 1 which has a default argument
2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
| ^~~~~~~~~
bug.cc:3:14: error: invalid use of type ‘void’ in parameter declaration
3 | long foo2 ( void = a, double param2){ }
| ^~~~~~~~~
bug.cc:3:33: error: default argument missing for parameter 2 of ‘long int
foo2(<type error>, double)’
3 | long foo2 ( void = a, double param2){ }
| ~~~~~~~~^~~~~~
bug.cc:3:14: note: ...following parameter 1 which has a default argument
3 | long foo2 ( void = a, double param2){ }
| ^~~~~~~~~
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/95659] Inconsistent error message in "default argument missing for parameter"
2020-06-12 17:32 [Bug c++/95659] New: Inconsistent error message in "default argument missing for parameter" haoxintu at gmail dot com
@ 2020-06-18 11:34 ` redi at gcc dot gnu.org
2024-05-09 9:09 ` redi at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: redi at gcc dot gnu.org @ 2020-06-18 11:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95659
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Haoxin Tu from comment #0)
> $cat bug.cc
> int a;
> long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){ }
> long foo2 ( void = a, double param2){ }
>
> In gcc-trunk
> $g++-trunk -w -c -std=c++14 bug.cc
> bug.cc:2:41: error: cannot declare a parameter with ‘decltype(auto)’
> 2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){
> }
> | ^~~~~~~~~~~~~~~
> bug.cc:2:14: error: invalid use of type ‘void’ in parameter declaration
> 2 | long foo1 ( void = a, double param2 ,decltype (auto) param3 = a){
> }
> | ^~~~~~~~~
The first two errors are correct, the function declaration is complete garbage
and these errors correctly identify some of the problems.
Whether it *also* notices another error in this garbage doesn't really matter.
You need to fix this nonsense before the code can be compiled anyway.
The general rule of thumb is always to start by fixing the first errors,
because they might be causing the later ones. If you fix those two errors, then
G++ will tell you about the next problem.
It's not really helpful to keep pointing out that if you randomly generate
complete garbage then GCC gets confused.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/95659] Inconsistent error message in "default argument missing for parameter"
2020-06-12 17:32 [Bug c++/95659] New: Inconsistent error message in "default argument missing for parameter" haoxintu at gmail dot com
2020-06-18 11:34 ` [Bug c++/95659] " redi at gcc dot gnu.org
@ 2024-05-09 9:09 ` redi at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: redi at gcc dot gnu.org @ 2024-05-09 9:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95659
Jonathan Wakely <redi at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |minor
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-05-09 9:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-12 17:32 [Bug c++/95659] New: Inconsistent error message in "default argument missing for parameter" haoxintu at gmail dot com
2020-06-18 11:34 ` [Bug c++/95659] " redi at gcc dot gnu.org
2024-05-09 9:09 ` redi 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).