Re: [PATCH] D24775: Add -Wignored-pragma-intrinsic flag

2016-09-21 Thread Albert Gutowski via cfe-commits
Thanks for clarification!
You are right that it doesn't really fit in -Wignored-pragma, but I
also don't like the idea of getting warning about ignored "#pragma
intrinsic" after setting -Wno-ignored-pragma, so I think I'll leave it
as it is.

On Wed, Sep 21, 2016 at 1:35 PM, Nico Weber  wrote:
> On Tue, Sep 20, 2016 at 4:21 PM, Albert Gutowski 
> wrote:
>>
>> OK, thanks for the note about referring to Chromium, I fixed that.
>> As to -Wunknown-pragma, I feel that it would be inconsistent with other
>> pragmas unless I moved whole pragma to lexer instead of parser - I've just
>> discovered that I can do that, how should I decide if it's supposed to be
>> here or there?
>
>
> Your commit reminds me that I forgot to reply to this thread. For the
> lexer/parser split, I think about it like this: If clang doesn't know about
> a certain pragma at all, it can't do anything with it, so all it does is
> emit 'unknown pragma', skip it, and move on. If it does know the pragma, it
> can parse it -- but then it might have to ignore it for some reason, which
> is why the parser prints that diagnostic.
>
> So you're right that this doesn't fit in well in -Wunknown-pragma.
>
> But -Wignored-pragma doesn't quite fit either imho, since we're not ignoring
> the pragma, we're looking at its context.
>
> Applying the same idea for pragmas to `#pragma intrinsic`, it feels to me
> that we don't know some intrinsics at all, so they're more unknown than
> ignored (as in -Wunkown-pragma-intrinsic, but in the sense of as "unknown
> (pragma intrinsic)" not "(unknown pragma) intrinsic" -- but since this
> shouldn't be in -Wunknown-pragma as you correctly say, that's not a good
> name for this flag.)
>
> So I think -Wmicrosoft-pragma-intrinsic might be a better fit. (But as I
> said, it's bikeshedding, and up to you.)
>
>>
>>
>> On Tue, Sep 20, 2016 at 12:30 PM, Nico Weber  wrote:
>>>
>>> Thanks! Some bikesheddy comments, ignore as you see fit:
>>>
>>> - I think it's good to keep Chromium's bug tracker out of LLVM as far as
>>> possible (most LLVM devs don't need to care about Chromium, and since
>>> Chromium's bug tracker refers to LLVM's bug tracker frequently since
>>> chromium depends on llvm, adding links the other way round adds a dependency
>>> cycle of sorts), so maybe describe the motivation in your own words instead
>>> of linking ("People might want to receive warnings about pragmas but not
>>> about intrinsics we don't yet implement")
>>>
>>> - Should this be part of -Wunknown-pragma instead of -Wignored-pragma?
>>> (Or maybe even in -Wmicrosoft somewhere?) That seems to fit a tiny bit
>>> better imho (but as I said, feel free to disagree and ignore)
>>>
>>> On Tue, Sep 20, 2016 at 2:38 PM, Albert Gutowski 
>>> wrote:

 agutowski created this revision.
 agutowski added reviewers: thakis, hans.
 agutowski added a subscriber: cfe-commits.

 https://bugs.chromium.org/p/chromium/issues/detail?id=644841#c9

 https://reviews.llvm.org/D24775

 Files:
   include/clang/Basic/DiagnosticGroups.td
   include/clang/Basic/DiagnosticParseKinds.td
   test/Preprocessor/pragma_microsoft.c

 Index: include/clang/Basic/DiagnosticParseKinds.td
 ===
 --- include/clang/Basic/DiagnosticParseKinds.td
 +++ include/clang/Basic/DiagnosticParseKinds.td
 @@ -914,7 +914,7 @@
  // - #pragma intrinsic
  def warn_pragma_intrinsic_builtin : Warning<
"%0 is not a recognized builtin%select{|; consider including
  to access non-builtin intrinsics}1">,
 -  InGroup;
 +  InGroup;
  // - #pragma unused
  def warn_pragma_unused_expected_var : Warning<
"expected '#pragma unused' argument to be a variable name">,
 Index: include/clang/Basic/DiagnosticGroups.td
 ===
 --- include/clang/Basic/DiagnosticGroups.td
 +++ include/clang/Basic/DiagnosticGroups.td
 @@ -439,8 +439,9 @@
  def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
  def Uninitialized  : DiagGroup<"uninitialized",
 [UninitializedSometimes,

 UninitializedStaticSelfInit]>;
 +def IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">;
  def UnknownPragmas : DiagGroup<"unknown-pragmas">;
 -def IgnoredPragmas : DiagGroup<"ignored-pragmas">;
 +def IgnoredPragmas : DiagGroup<"ignored-pragmas",
 [IgnoredPragmaIntrinsic]>;
  def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>;
  def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
  def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
 Index: test/Preprocessor/pragma_microsoft.c
 ===
 --- test/Preprocessor/pragma_microsoft.c
 +++ test/Preprocessor/pragma_microsoft.c
 @@ -178,3 +178,15 @@
  #pragma intrinsic(mems

Re: [PATCH] D24775: Add -Wignored-pragma-intrinsic flag

2016-09-21 Thread Nico Weber via cfe-commits
On Tue, Sep 20, 2016 at 4:21 PM, Albert Gutowski 
wrote:

> OK, thanks for the note about referring to Chromium, I fixed that.
> As to -Wunknown-pragma, I feel that it would be inconsistent with other
> pragmas unless I moved whole pragma to lexer instead of parser - I've just
> discovered that I can do that, how should I decide if it's supposed to be
> here or there?
>

Your commit reminds me that I forgot to reply to this thread. For the
lexer/parser split, I think about it like this: If clang doesn't know about
a certain pragma at all, it can't do anything with it, so all it does is
emit 'unknown pragma', skip it, and move on. If it does know the pragma, it
can parse it -- but then it might have to ignore it for some reason, which
is why the parser prints that diagnostic.

So you're right that this doesn't fit in well in -Wunknown-pragma.

But -Wignored-pragma doesn't quite fit either imho, since we're not
ignoring the pragma, we're looking at its context.

Applying the same idea for pragmas to `#pragma intrinsic`, it feels to me
that we don't know some intrinsics at all, so they're more unknown than
ignored (as in -Wunkown-pragma-intrinsic, but in the sense of as "unknown
(pragma intrinsic)" not "(unknown pragma) intrinsic" -- but since this
shouldn't be in -Wunknown-pragma as you correctly say, that's not a good
name for this flag.)

So I think -Wmicrosoft-pragma-intrinsic might be a better fit. (But as I
said, it's bikeshedding, and up to you.)


>
> On Tue, Sep 20, 2016 at 12:30 PM, Nico Weber  wrote:
>
>> Thanks! Some bikesheddy comments, ignore as you see fit:
>>
>> - I think it's good to keep Chromium's bug tracker out of LLVM as far as
>> possible (most LLVM devs don't need to care about Chromium, and since
>> Chromium's bug tracker refers to LLVM's bug tracker frequently since
>> chromium depends on llvm, adding links the other way round adds a
>> dependency cycle of sorts), so maybe describe the motivation in your own
>> words instead of linking ("People might want to receive warnings about
>> pragmas but not about intrinsics we don't yet implement")
>>
>> - Should this be part of -Wunknown-pragma instead of -Wignored-pragma?
>> (Or maybe even in -Wmicrosoft somewhere?) That seems to fit a tiny bit
>> better imho (but as I said, feel free to disagree and ignore)
>>
>> On Tue, Sep 20, 2016 at 2:38 PM, Albert Gutowski 
>> wrote:
>>
>>> agutowski created this revision.
>>> agutowski added reviewers: thakis, hans.
>>> agutowski added a subscriber: cfe-commits.
>>>
>>> https://bugs.chromium.org/p/chromium/issues/detail?id=644841#c9
>>>
>>> https://reviews.llvm.org/D24775
>>>
>>> Files:
>>>   include/clang/Basic/DiagnosticGroups.td
>>>   include/clang/Basic/DiagnosticParseKinds.td
>>>   test/Preprocessor/pragma_microsoft.c
>>>
>>> Index: include/clang/Basic/DiagnosticParseKinds.td
>>> ===
>>> --- include/clang/Basic/DiagnosticParseKinds.td
>>> +++ include/clang/Basic/DiagnosticParseKinds.td
>>> @@ -914,7 +914,7 @@
>>>  // - #pragma intrinsic
>>>  def warn_pragma_intrinsic_builtin : Warning<
>>>"%0 is not a recognized builtin%select{|; consider including
>>>  to access non-builtin intrinsics}1">,
>>> -  InGroup;
>>> +  InGroup;
>>>  // - #pragma unused
>>>  def warn_pragma_unused_expected_var : Warning<
>>>"expected '#pragma unused' argument to be a variable name">,
>>> Index: include/clang/Basic/DiagnosticGroups.td
>>> ===
>>> --- include/clang/Basic/DiagnosticGroups.td
>>> +++ include/clang/Basic/DiagnosticGroups.td
>>> @@ -439,8 +439,9 @@
>>>  def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
>>>  def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes,
>>>
>>> UninitializedStaticSelfInit]>;
>>> +def IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">;
>>>  def UnknownPragmas : DiagGroup<"unknown-pragmas">;
>>> -def IgnoredPragmas : DiagGroup<"ignored-pragmas">;
>>> +def IgnoredPragmas : DiagGroup<"ignored-pragmas",
>>> [IgnoredPragmaIntrinsic]>;
>>>  def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>;
>>>  def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
>>>  def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
>>> Index: test/Preprocessor/pragma_microsoft.c
>>> ===
>>> --- test/Preprocessor/pragma_microsoft.c
>>> +++ test/Preprocessor/pragma_microsoft.c
>>> @@ -178,3 +178,15 @@
>>>  #pragma intrinsic(memset) // no-warning
>>>  #undef __INTRIN_H
>>>  #pragma intrinsic(asdf) // expected-warning {{'asdf' is not a
>>> recognized builtin; consider including }}
>>> +
>>> +#pragma clang diagnostic push
>>> +#pragma clang diagnostic ignored "-Wignored-pragma-intrinsic"
>>> +#pragma intrinsic(asdf) // no-warning
>>> +#pragma clang diagnostic pop
>>> +#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a
>>> recognized buil

Re: [PATCH] D24775: Add -Wignored-pragma-intrinsic flag

2016-09-21 Thread Albert Gutowski via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL282108: Add -Wignored-pragma-intrinsic flag (authored by 
agutowski).

Changed prior to commit:
  https://reviews.llvm.org/D24775?vs=71960&id=72102#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D24775

Files:
  cfe/trunk/include/clang/Basic/DiagnosticGroups.td
  cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
  cfe/trunk/test/Preprocessor/pragma_microsoft.c

Index: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
===
--- cfe/trunk/include/clang/Basic/DiagnosticGroups.td
+++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td
@@ -439,8 +439,9 @@
 def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
 def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes,
  UninitializedStaticSelfInit]>;
+def IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">;
 def UnknownPragmas : DiagGroup<"unknown-pragmas">;
-def IgnoredPragmas : DiagGroup<"ignored-pragmas">;
+def IgnoredPragmas : DiagGroup<"ignored-pragmas", [IgnoredPragmaIntrinsic]>;
 def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>;
 def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
 def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
Index: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
===
--- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
+++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
@@ -914,7 +914,7 @@
 // - #pragma intrinsic
 def warn_pragma_intrinsic_builtin : Warning<
   "%0 is not a recognized builtin%select{|; consider including  to 
access non-builtin intrinsics}1">,
-  InGroup;
+  InGroup;
 // - #pragma unused
 def warn_pragma_unused_expected_var : Warning<
   "expected '#pragma unused' argument to be a variable name">,
Index: cfe/trunk/test/Preprocessor/pragma_microsoft.c
===
--- cfe/trunk/test/Preprocessor/pragma_microsoft.c
+++ cfe/trunk/test/Preprocessor/pragma_microsoft.c
@@ -178,3 +178,15 @@
 #pragma intrinsic(memset) // no-warning
 #undef __INTRIN_H
 #pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized 
builtin; consider including }}
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wignored-pragma-intrinsic"
+#pragma intrinsic(asdf) // no-warning
+#pragma clang diagnostic pop
+#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized 
builtin; consider including }}
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wignored-pragmas"
+#pragma intrinsic(asdf) // no-warning
+#pragma clang diagnostic pop
+#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized 
builtin; consider including }}


Index: cfe/trunk/include/clang/Basic/DiagnosticGroups.td
===
--- cfe/trunk/include/clang/Basic/DiagnosticGroups.td
+++ cfe/trunk/include/clang/Basic/DiagnosticGroups.td
@@ -439,8 +439,9 @@
 def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
 def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes,
  UninitializedStaticSelfInit]>;
+def IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">;
 def UnknownPragmas : DiagGroup<"unknown-pragmas">;
-def IgnoredPragmas : DiagGroup<"ignored-pragmas">;
+def IgnoredPragmas : DiagGroup<"ignored-pragmas", [IgnoredPragmaIntrinsic]>;
 def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>;
 def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
 def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
Index: cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
===
--- cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
+++ cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td
@@ -914,7 +914,7 @@
 // - #pragma intrinsic
 def warn_pragma_intrinsic_builtin : Warning<
   "%0 is not a recognized builtin%select{|; consider including  to access non-builtin intrinsics}1">,
-  InGroup;
+  InGroup;
 // - #pragma unused
 def warn_pragma_unused_expected_var : Warning<
   "expected '#pragma unused' argument to be a variable name">,
Index: cfe/trunk/test/Preprocessor/pragma_microsoft.c
===
--- cfe/trunk/test/Preprocessor/pragma_microsoft.c
+++ cfe/trunk/test/Preprocessor/pragma_microsoft.c
@@ -178,3 +178,15 @@
 #pragma intrinsic(memset) // no-warning
 #undef __INTRIN_H
 #pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized builtin; consider including }}
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wignored-pragma-intrinsic"
+#pragma intrinsic(asdf) // no-warning
+#pragma cla

Re: [PATCH] D24775: Add -Wignored-pragma-intrinsic flag

2016-09-20 Thread Albert Gutowski via cfe-commits
OK, thanks for the note about referring to Chromium, I fixed that.
As to -Wunknown-pragma, I feel that it would be inconsistent with other
pragmas unless I moved whole pragma to lexer instead of parser - I've just
discovered that I can do that, how should I decide if it's supposed to be
here or there?

On Tue, Sep 20, 2016 at 12:30 PM, Nico Weber  wrote:

> Thanks! Some bikesheddy comments, ignore as you see fit:
>
> - I think it's good to keep Chromium's bug tracker out of LLVM as far as
> possible (most LLVM devs don't need to care about Chromium, and since
> Chromium's bug tracker refers to LLVM's bug tracker frequently since
> chromium depends on llvm, adding links the other way round adds a
> dependency cycle of sorts), so maybe describe the motivation in your own
> words instead of linking ("People might want to receive warnings about
> pragmas but not about intrinsics we don't yet implement")
>
> - Should this be part of -Wunknown-pragma instead of -Wignored-pragma? (Or
> maybe even in -Wmicrosoft somewhere?) That seems to fit a tiny bit better
> imho (but as I said, feel free to disagree and ignore)
>
> On Tue, Sep 20, 2016 at 2:38 PM, Albert Gutowski 
> wrote:
>
>> agutowski created this revision.
>> agutowski added reviewers: thakis, hans.
>> agutowski added a subscriber: cfe-commits.
>>
>> https://bugs.chromium.org/p/chromium/issues/detail?id=644841#c9
>>
>> https://reviews.llvm.org/D24775
>>
>> Files:
>>   include/clang/Basic/DiagnosticGroups.td
>>   include/clang/Basic/DiagnosticParseKinds.td
>>   test/Preprocessor/pragma_microsoft.c
>>
>> Index: include/clang/Basic/DiagnosticParseKinds.td
>> ===
>> --- include/clang/Basic/DiagnosticParseKinds.td
>> +++ include/clang/Basic/DiagnosticParseKinds.td
>> @@ -914,7 +914,7 @@
>>  // - #pragma intrinsic
>>  def warn_pragma_intrinsic_builtin : Warning<
>>"%0 is not a recognized builtin%select{|; consider including
>>  to access non-builtin intrinsics}1">,
>> -  InGroup;
>> +  InGroup;
>>  // - #pragma unused
>>  def warn_pragma_unused_expected_var : Warning<
>>"expected '#pragma unused' argument to be a variable name">,
>> Index: include/clang/Basic/DiagnosticGroups.td
>> ===
>> --- include/clang/Basic/DiagnosticGroups.td
>> +++ include/clang/Basic/DiagnosticGroups.td
>> @@ -439,8 +439,9 @@
>>  def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
>>  def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes,
>>
>> UninitializedStaticSelfInit]>;
>> +def IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">;
>>  def UnknownPragmas : DiagGroup<"unknown-pragmas">;
>> -def IgnoredPragmas : DiagGroup<"ignored-pragmas">;
>> +def IgnoredPragmas : DiagGroup<"ignored-pragmas",
>> [IgnoredPragmaIntrinsic]>;
>>  def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>;
>>  def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
>>  def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
>> Index: test/Preprocessor/pragma_microsoft.c
>> ===
>> --- test/Preprocessor/pragma_microsoft.c
>> +++ test/Preprocessor/pragma_microsoft.c
>> @@ -178,3 +178,15 @@
>>  #pragma intrinsic(memset) // no-warning
>>  #undef __INTRIN_H
>>  #pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized
>> builtin; consider including }}
>> +
>> +#pragma clang diagnostic push
>> +#pragma clang diagnostic ignored "-Wignored-pragma-intrinsic"
>> +#pragma intrinsic(asdf) // no-warning
>> +#pragma clang diagnostic pop
>> +#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized
>> builtin; consider including }}
>> +
>> +#pragma clang diagnostic push
>> +#pragma clang diagnostic ignored "-Wignored-pragmas"
>> +#pragma intrinsic(asdf) // no-warning
>> +#pragma clang diagnostic pop
>> +#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized
>> builtin; consider including }}
>>
>>
>>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D24775: Add -Wignored-pragma-intrinsic flag

2016-09-20 Thread Nico Weber via cfe-commits
Thanks! Some bikesheddy comments, ignore as you see fit:

- I think it's good to keep Chromium's bug tracker out of LLVM as far as
possible (most LLVM devs don't need to care about Chromium, and since
Chromium's bug tracker refers to LLVM's bug tracker frequently since
chromium depends on llvm, adding links the other way round adds a
dependency cycle of sorts), so maybe describe the motivation in your own
words instead of linking ("People might want to receive warnings about
pragmas but not about intrinsics we don't yet implement")

- Should this be part of -Wunknown-pragma instead of -Wignored-pragma? (Or
maybe even in -Wmicrosoft somewhere?) That seems to fit a tiny bit better
imho (but as I said, feel free to disagree and ignore)

On Tue, Sep 20, 2016 at 2:38 PM, Albert Gutowski 
wrote:

> agutowski created this revision.
> agutowski added reviewers: thakis, hans.
> agutowski added a subscriber: cfe-commits.
>
> https://bugs.chromium.org/p/chromium/issues/detail?id=644841#c9
>
> https://reviews.llvm.org/D24775
>
> Files:
>   include/clang/Basic/DiagnosticGroups.td
>   include/clang/Basic/DiagnosticParseKinds.td
>   test/Preprocessor/pragma_microsoft.c
>
> Index: include/clang/Basic/DiagnosticParseKinds.td
> ===
> --- include/clang/Basic/DiagnosticParseKinds.td
> +++ include/clang/Basic/DiagnosticParseKinds.td
> @@ -914,7 +914,7 @@
>  // - #pragma intrinsic
>  def warn_pragma_intrinsic_builtin : Warning<
>"%0 is not a recognized builtin%select{|; consider including 
> to access non-builtin intrinsics}1">,
> -  InGroup;
> +  InGroup;
>  // - #pragma unused
>  def warn_pragma_unused_expected_var : Warning<
>"expected '#pragma unused' argument to be a variable name">,
> Index: include/clang/Basic/DiagnosticGroups.td
> ===
> --- include/clang/Basic/DiagnosticGroups.td
> +++ include/clang/Basic/DiagnosticGroups.td
> @@ -439,8 +439,9 @@
>  def UninitializedStaticSelfInit : DiagGroup<"static-self-init">;
>  def Uninitialized  : DiagGroup<"uninitialized", [UninitializedSometimes,
>
> UninitializedStaticSelfInit]>;
> +def IgnoredPragmaIntrinsic : DiagGroup<"ignored-pragma-intrinsic">;
>  def UnknownPragmas : DiagGroup<"unknown-pragmas">;
> -def IgnoredPragmas : DiagGroup<"ignored-pragmas">;
> +def IgnoredPragmas : DiagGroup<"ignored-pragmas",
> [IgnoredPragmaIntrinsic]>;
>  def Pragmas : DiagGroup<"pragmas", [UnknownPragmas, IgnoredPragmas]>;
>  def UnknownWarningOption : DiagGroup<"unknown-warning-option">;
>  def NSobjectAttribute : DiagGroup<"NSObject-attribute">;
> Index: test/Preprocessor/pragma_microsoft.c
> ===
> --- test/Preprocessor/pragma_microsoft.c
> +++ test/Preprocessor/pragma_microsoft.c
> @@ -178,3 +178,15 @@
>  #pragma intrinsic(memset) // no-warning
>  #undef __INTRIN_H
>  #pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized
> builtin; consider including }}
> +
> +#pragma clang diagnostic push
> +#pragma clang diagnostic ignored "-Wignored-pragma-intrinsic"
> +#pragma intrinsic(asdf) // no-warning
> +#pragma clang diagnostic pop
> +#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized
> builtin; consider including }}
> +
> +#pragma clang diagnostic push
> +#pragma clang diagnostic ignored "-Wignored-pragmas"
> +#pragma intrinsic(asdf) // no-warning
> +#pragma clang diagnostic pop
> +#pragma intrinsic(asdf) // expected-warning {{'asdf' is not a recognized
> builtin; consider including }}
>
>
>
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


Re: [PATCH] D24775: Add -Wignored-pragma-intrinsic flag

2016-09-20 Thread Hans Wennborg via cfe-commits
hans accepted this revision.
hans added a comment.
This revision is now accepted and ready to land.

lgtm!


https://reviews.llvm.org/D24775



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits