jyknight added a comment. Good improvement, but an additional change to wording for just the zero-arg non-prototype function declaration case could help a lot. The fact that zero-arg it's only being warned about because of the "...because of" note isn't particularly clear -- especially when the "because of" isn't emitted.
So, suggestion for zero-arg-specific warning text: `this function %select{declaration|definition}0 without a prototype is deprecated before C2x, and is treated as a zero-parameter prototype in C2x, conflicting with a %select{previous|subsequent}1 declaration`. Then, the note_func_decl_changes_behavior text can just be e.g.: `conflicting prototype is here` That'd result in: `printf 'int f();\nint f(a) int a; {return 1;}' | build/bin/clang -c -fsyntax-only -xc -` showing: <stdin>:2:5: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] int f(a) int a; {return 1;} ^ <stdin>:1:5: warning: this function declaration without a prototype is deprecated before C2x, and is treated as a zero-parameter prototype in C2x, conflicting with a subsequent declaration [-Wdeprecated-non-prototype] int f(); ^ CHANGES SINCE LAST ACTION https://reviews.llvm.org/D125814/new/ https://reviews.llvm.org/D125814 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits