diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td index b78c3994da78..8b76464db34d 100644 --- a/clang/include/clang/Basic/DiagnosticSemaKinds.td +++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td @@ -1836,7 +1836,7 @@ def ext_typecheck_convert_incompatible_pointer : ExtWarn< "incompatible pointer types %2 %1, expected %0">; def ext_typecheck_convert_discards_qualifiers : ExtWarn< "%2 %1 discards qualifiers, expected %0">; -def err_nested_pointer_qualifier_mismatch : Error< +def ext_nested_pointer_qualifier_mismatch : ExtWarn< "%2, %0 and %1 have different qualifiers in nested pointer types">; def warn_incompatible_vectors : Warning< "incompatible vector types %2 %1, expected %0">, diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp index 887a4c4af49c..34b9eb843bb6 100644 --- a/clang/lib/Sema/SemaExpr.cpp +++ b/clang/lib/Sema/SemaExpr.cpp @@ -6242,7 +6242,7 @@ bool Sema::DiagnoseAssignmentResult(AssignConvertType ConvTy, DiagKind = diag::ext_typecheck_convert_discards_qualifiers; break; case IncompatibleNestedPointerQualifiers: - DiagKind = diag::err_nested_pointer_qualifier_mismatch; + DiagKind = diag::ext_nested_pointer_qualifier_mismatch; break; case IntToBlockPointer: DiagKind = diag::err_int_to_block_pointer; diff --git a/clang/test/Sema/pointer-conversion.c b/clang/test/Sema/pointer-conversion.c index 07176e61df06..5f41ff67411b 100644 --- a/clang/test/Sema/pointer-conversion.c +++ b/clang/test/Sema/pointer-conversion.c @@ -1,10 +1,10 @@ //RUN: clang-cc -fsyntax-only -verify %s char * c; -char const ** c2 = &c; // expected-error {{initializing, 'char const **' and 'char **' have different qualifiers in nested pointer types}} +char const ** c2 = &c; // expected-warning {{initializing, 'char const **' and 'char **' have different qualifiers in nested pointer types}} typedef char dchar; -dchar *** c3 = &c2; // expected-error {{initializing, 'dchar ***' and 'char const ***' have different qualifiers in nested pointer types}} +dchar *** c3 = &c2; // expected-warning {{initializing, 'dchar ***' and 'char const ***' have different qualifiers in nested pointer types}} volatile char * c4; -char ** c5 = &c4; // expected-error {{initializing, 'char **' and 'char volatile **' have different qualifiers in nested pointer types}} +char ** c5 = &c4; // expected-warning {{initializing, 'char **' and 'char volatile **' have different qualifiers in nested pointer types}}