forked from OSchip/llvm-project
[Sema] Expose a control flag for integer to pointer ext warning
While building openJDK11u, it seems that some of the code in the native core libraries make liberal use of integer to pointer comparisons. We currently have no flag to disabled this warning. This add such a flag. Patch by Kader (abdoul-kader keita) Differential Revision: https://reviews.llvm.org/D56241 llvm-svn: 351082
This commit is contained in:
parent
c34f022bfe
commit
4c73404809
|
@ -5875,7 +5875,8 @@ def ext_typecheck_comparison_of_fptr_to_void : Extension<
|
|||
def err_typecheck_comparison_of_fptr_to_void : Error<
|
||||
"equality comparison between function pointer and void pointer (%0 and %1)">;
|
||||
def ext_typecheck_comparison_of_pointer_integer : ExtWarn<
|
||||
"comparison between pointer and integer (%0 and %1)">;
|
||||
"comparison between pointer and integer (%0 and %1)">,
|
||||
InGroup<DiagGroup<"pointer-integer-compare">>;
|
||||
def err_typecheck_comparison_of_pointer_integer : Error<
|
||||
"comparison between pointer and integer (%0 and %1)">;
|
||||
def ext_typecheck_comparison_of_distinct_pointers : ExtWarn<
|
||||
|
|
|
@ -18,7 +18,7 @@ This test serves two purposes:
|
|||
|
||||
The list of warnings below should NEVER grow. It should gradually shrink to 0.
|
||||
|
||||
CHECK: Warnings without flags (75):
|
||||
CHECK: Warnings without flags (74):
|
||||
CHECK-NEXT: ext_excess_initializers
|
||||
CHECK-NEXT: ext_excess_initializers_in_char_array_initializer
|
||||
CHECK-NEXT: ext_expected_semi_decl_list
|
||||
|
@ -29,7 +29,6 @@ CHECK-NEXT: ext_missing_whitespace_after_macro_name
|
|||
CHECK-NEXT: ext_new_paren_array_nonconst
|
||||
CHECK-NEXT: ext_plain_complex
|
||||
CHECK-NEXT: ext_template_arg_extra_parens
|
||||
CHECK-NEXT: ext_typecheck_comparison_of_pointer_integer
|
||||
CHECK-NEXT: ext_typecheck_cond_incompatible_operands
|
||||
CHECK-NEXT: ext_typecheck_ordered_comparison_of_pointer_integer
|
||||
CHECK-NEXT: ext_using_undefined_std
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -verify -DEXPECTWARNING %s
|
||||
// RUN: %clang_cc1 -triple x86_64-apple-darwin -fsyntax-only -verify -Wno-pointer-integer-compare %s
|
||||
|
||||
#ifdef EXPECTWARNING
|
||||
// expected-warning@+6 {{comparison between pointer and integer ('int' and 'int *')}}
|
||||
#else
|
||||
// expected-no-diagnostics
|
||||
#endif
|
||||
|
||||
int test_ext_typecheck_comparison_of_pointer_integer(int integer, int * pointer) {
|
||||
return integer != pointer;
|
||||
}
|
Loading…
Reference in New Issue