Richard, what do you think?
On Fri, Jan 13, 2017 at 3:16 PM, Eric Fiselier <e...@efcs.ca> wrote: > I would love to see this merged. It would make it easier to write libc++ > tests if the tests didn't have to worry about the old 4.0 behavior. > > CC'ing Richard: Would merging this be OK? > > On Fri, Jan 13, 2017 at 3:46 PM, George Burgess IV > <george.burgess...@gmail.com> wrote: >> >> 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/Inputs/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/diagnose_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