Do we want to consider merging this into the release branch? Seems like more of a bugfix than a feature to me.
On Fri, Jan 13, 2017 at 2:11 PM, Eric Fiselier via cfe-commits < cfe-commits@lists.llvm.org> wrote: > Author: ericwf > Date: Fri Jan 13 16:11:40 2017 > New Revision: 291963 > > URL: http://llvm.org/viewvc/llvm-project?rev=291963&view=rev > Log: > [clang] Emit `diagnose_if` warnings from system headers > > Summary: In order for libc++ to meaningfully use `diagnose_if` warnings > they need to be emitted from system headers by default. This patch changes > the `diagnose_if` warning diagnostic to be shown in system headers. > > Reviewers: george.burgess.iv, rsmith, aaron.ballman > > Subscribers: cfe-commits > > Differential Revision: https://reviews.llvm.org/D28703 > > Added: > cfe/trunk/test/Sema/Inputs/diagnose-if-warn-system-header.h > Modified: > cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td > cfe/trunk/test/Sema/diagnose_if.c > > Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ > Basic/DiagnosticSemaKinds.td?rev=291963&r1=291962&r2=291963&view=diff > ============================================================ > ================== > --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) > +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Fri Jan 13 > 16:11:40 2017 > @@ -3380,7 +3380,8 @@ def note_ovl_candidate_has_pass_object_s > "candidate address cannot be taken because parameter %0 has " > "pass_object_size attribute">; > def err_diagnose_if_succeeded : Error<"%0">; > -def warn_diagnose_if_succeeded : Warning<"%0">, > InGroup<UserDefinedWarnings>; > +def warn_diagnose_if_succeeded : Warning<"%0">, > InGroup<UserDefinedWarnings>, > + ShowInSystemHeader; > def note_ovl_candidate_disabled_by_function_cond_attr : Note< > "candidate disabled: %0">; > def note_ovl_candidate_disabled_by_extension : Note< > > Added: cfe/trunk/test/Sema/Inputs/diagnose-if-warn-system-header.h > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/Inpu > ts/diagnose-if-warn-system-header.h?rev=291963&view=auto > ============================================================ > ================== > --- cfe/trunk/test/Sema/Inputs/diagnose-if-warn-system-header.h (added) > +++ cfe/trunk/test/Sema/Inputs/diagnose-if-warn-system-header.h Fri Jan > 13 16:11:40 2017 > @@ -0,0 +1,11 @@ > +#pragma GCC system_header > + > +inline int system_header_func(int x) > + __attribute__((diagnose_if(x == x, "system header warning", > "warning"))) // expected-note {{from 'diagnose_if' attribute}} > +{ > + return 0; > +} > + > +void test_system_header() { > + system_header_func(0); // expected-warning {{system header warning}} > +} > > Modified: cfe/trunk/test/Sema/diagnose_if.c > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/diag > nose_if.c?rev=291963&r1=291962&r2=291963&view=diff > ============================================================ > ================== > --- cfe/trunk/test/Sema/diagnose_if.c (original) > +++ cfe/trunk/test/Sema/diagnose_if.c Fri Jan 13 16:11:40 2017 > @@ -150,3 +150,6 @@ void alwaysWarnWithArg(int a) _diagnose_ > void runAlwaysWarnWithArg(int a) { > alwaysWarnWithArg(a); // expected-warning{{alwaysWarn}} > } > + > +// Test that diagnose_if warnings generated in system headers are not > ignored. > +#include "Inputs/diagnose-if-warn-system-header.h" > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits