]> granicus.if.org Git - clang/commitdiff
Make sure that restrict-qualifying an array actually adds a restrict qualifier. PR113...
authorEli Friedman <eli.friedman@gmail.com>
Fri, 11 Nov 2011 02:00:42 +0000 (02:00 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Fri, 11 Nov 2011 02:00:42 +0000 (02:00 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144355 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaType.cpp
test/Sema/function.c

index 4dc6c949d59ca48ffa01429a074e1791a6b488a6..fa002bba198153c52f38a867a7b8bead32eba21a 100644 (file)
@@ -2032,8 +2032,7 @@ static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state,
         ASM = ArrayType::Normal;
         D.setInvalidType(true);
       }
-      T = S.BuildArrayType(T, ASM, ArraySize,
-                           Qualifiers::fromCVRMask(ATI.TypeQuals),
+      T = S.BuildArrayType(T, ASM, ArraySize, ATI.TypeQuals,
                            SourceRange(DeclType.Loc, DeclType.EndLoc), Name);
       break;
     }
index b51c137ce7dc2c6ddce5ad5b38943b2ac5e2db26..1eb5ac4623dfa23a7f23abbefc51f22631b6aba7 100644 (file)
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 %s -fsyntax-only -verify -pedantic
-// PR1892
-void f(double a[restrict][5]);  // should promote to restrict ptr.
-void f(double (* restrict a)[5]);
+
+// PR1892, PR11354
+void f(double a[restrict][5]) { __typeof(a) x = 10; } // expected-warning {{(aka 'double (*restrict)[5]')}}
 
 int foo (__const char *__path);
 int foo(__const char *__restrict __file);