aaronpuchert added a comment.
Note that I'm just copying GCC, which seems the be the original intent behind
the warning (https://bugs.llvm.org/show_bug.cgi?id=20796). So people who use
both compilers will have seen that warning already. Note also that there is no
warning if any declaration provides a prototype, so this is fine:
void f(void); // provides a prototype
void f() {} // not a prototype, but we have one already
In D66919#1650174 <https://reviews.llvm.org/D66919#1650174>, @dexonsmith wrote:
> We could carve out a `-W` flag (if it doesn't already exist) that warns if
> you incorrectly pass parameters to a function whose definition has no
> prototype
The warning exists, but there is no flag apparently.
void f() {}
void g() {
f(0);
}
spits out
test.c:3:8: warning: too many arguments in call to 'f'
f(0);
~ ^
But with `f(void)` we get
test.c:3:7: error: too many arguments to function call, expected 0, have 1
f(0);
~ ^
test.c:1:1: note: 'f' declared here
void f(void) {}
^
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66919/new/
https://reviews.llvm.org/D66919
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits