forked from OSchip/llvm-project
Add -Wduplicate-protocol for existing diagnostic
Expose a warning flag for warn_duplicate_protocol_def. This allows control over the severity of duplicate protocol definitions. For example -Werror=duplicate-protocol or #pragma clang diagnostic ignored "-Wduplicate-protocol". Patch provided by Dave Lee! Differential Revision: https://reviews.llvm.org/D26406 llvm-svn: 286487
This commit is contained in:
parent
6aa9416d06
commit
a5430bd5d6
|
@ -742,7 +742,9 @@ def err_recursive_superclass : Error<
|
|||
"trying to recursively use %0 as superclass of %1">;
|
||||
def err_conflicting_aliasing_type : Error<"conflicting types for alias %0">;
|
||||
def warn_undef_interface : Warning<"cannot find interface declaration for %0">;
|
||||
def warn_duplicate_protocol_def : Warning<"duplicate protocol definition of %0 is ignored">;
|
||||
def warn_duplicate_protocol_def : Warning<
|
||||
"duplicate protocol definition of %0 is ignored">,
|
||||
InGroup<DiagGroup<"duplicate-protocol">>;
|
||||
def err_protocol_has_circular_dependency : Error<
|
||||
"protocol has circular dependency">;
|
||||
def err_undeclared_protocol : Error<"cannot find protocol declaration for %0">;
|
||||
|
|
|
@ -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 (83):
|
||||
CHECK: Warnings without flags (82):
|
||||
CHECK-NEXT: ext_excess_initializers
|
||||
CHECK-NEXT: ext_excess_initializers_in_char_array_initializer
|
||||
CHECK-NEXT: ext_expected_semi_decl_list
|
||||
|
@ -58,7 +58,6 @@ CHECK-NEXT: warn_drv_clang_unsupported
|
|||
CHECK-NEXT: warn_drv_objc_gc_unsupported
|
||||
CHECK-NEXT: warn_drv_pch_not_first_include
|
||||
CHECK-NEXT: warn_dup_category_def
|
||||
CHECK-NEXT: warn_duplicate_protocol_def
|
||||
CHECK-NEXT: warn_enum_value_overflow
|
||||
CHECK-NEXT: warn_expected_qualified_after_typename
|
||||
CHECK-NEXT: warn_extraneous_char_constant
|
||||
|
|
|
@ -35,6 +35,12 @@ void Gorf() // expected-error {{redefinition of 'Gorf' as different kind of symb
|
|||
@protocol PP<P> @end // expected-note {{previous definition is here}}
|
||||
@protocol PP<Q> @end // expected-warning {{duplicate protocol definition of 'PP'}}
|
||||
|
||||
@protocol DP<P> @end
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wduplicate-protocol"
|
||||
@protocol DP<Q> @end
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
@interface A(Cat)<P> @end // expected-note {{previous definition is here}}
|
||||
@interface A(Cat)<Q> @end // expected-warning {{duplicate definition of category 'Cat' on interface 'A'}}
|
||||
|
||||
|
|
Loading…
Reference in New Issue