forked from OSchip/llvm-project
Split 'qualifier on reference type has no effect' out into a new flag
This introduces a new flag ignored-reference-qualifiers for the existing "'A' qualifier on reference type B has no effect" diagnostic, as a child of ignored-qualifiers. Rationale: This particular diagnostic is enabled by default, but other parts of ignored-qualifiers are not. Anecdotally, a user may encounter this diagnostic in the wild, and, seeing it to be valuable, might try to raise it to error with -Werror=ignored-qualifiers, whereupon the other diagnostics the flag covers will also be raised, to the user's surprise and confusion. By splitting this diagnostic out into a separate flag, and marking it as a child of ignored-qualifiers, we allow the user more granular control of the diagnostics they care about, while maintaining backwards compatibility with existing build scripts.
This commit is contained in:
parent
5173854f19
commit
6385abd0c4
|
@ -402,7 +402,8 @@ def IncrementBool : DiagGroup<"increment-bool", [DeprecatedIncrementBool]>;
|
|||
def InfiniteRecursion : DiagGroup<"infinite-recursion">;
|
||||
def PureVirtualCallFromCtorDtor: DiagGroup<"call-to-pure-virtual-from-ctor-dtor">;
|
||||
def GNUImaginaryConstant : DiagGroup<"gnu-imaginary-constant">;
|
||||
def IgnoredQualifiers : DiagGroup<"ignored-qualifiers">;
|
||||
def IgnoredReferenceQualifiers : DiagGroup<"ignored-reference-qualifiers">;
|
||||
def IgnoredQualifiers : DiagGroup<"ignored-qualifiers", [IgnoredReferenceQualifiers]>;
|
||||
def : DiagGroup<"import">;
|
||||
def GNUIncludeNext : DiagGroup<"gnu-include-next">;
|
||||
def IncompatibleMSStruct : DiagGroup<"incompatible-ms-struct">;
|
||||
|
|
|
@ -5735,7 +5735,7 @@ def warn_typecheck_function_qualifiers_unspecified : Warning<
|
|||
"'%0' qualifier on function type %1 has unspecified behavior">;
|
||||
def warn_typecheck_reference_qualifiers : Warning<
|
||||
"'%0' qualifier on reference type %1 has no effect">,
|
||||
InGroup<IgnoredQualifiers>;
|
||||
InGroup<IgnoredReferenceQualifiers>;
|
||||
def err_typecheck_invalid_restrict_not_pointer : Error<
|
||||
"restrict requires a pointer or reference (%0 is invalid)">;
|
||||
def err_typecheck_invalid_restrict_not_pointer_noarg : Error<
|
||||
|
|
Loading…
Reference in New Issue