From: Fariborz Jahanian Date: Mon, 9 Nov 2009 22:16:37 +0000 (+0000) Subject: Changed error for nested type qualifier mismatch to X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3451e9282a72f09e834486ce6f5aab803f491e97;p=clang Changed error for nested type qualifier mismatch to warning, to match gcc. It used to be warning, so better keep it a warning (it broke a certain project). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86597 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index b78c3994da..8b76464db3 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/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/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp index 887a4c4af4..34b9eb843b 100644 --- a/lib/Sema/SemaExpr.cpp +++ b/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/test/Sema/pointer-conversion.c b/test/Sema/pointer-conversion.c index 07176e61df..5f41ff6741 100644 --- a/test/Sema/pointer-conversion.c +++ b/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}}