diff --git a/lib/AST/TypePrinter.cpp b/lib/AST/TypePrinter.cpp index d357b3215abf037df2b801aa18383c1e3e8f3eb1..d06bfbdb7a7912a4a2f0c74a9e608319194c7be5 100644 --- a/lib/AST/TypePrinter.cpp +++ b/lib/AST/TypePrinter.cpp @@ -431,6 +431,10 @@ void TypePrinter::printConstantArrayBefore(const ConstantArrayType *T, void TypePrinter::printConstantArrayAfter(const ConstantArrayType *T, raw_ostream &OS) { OS << '['; + if (T->getIndexTypeQualifiers().hasQualifiers()) { + AppendTypeQualList(OS, T->getIndexTypeCVRQualifiers()); + OS << ' '; + } if (T->getSizeModifier() == VariableArrayType::Static) OS << "static "; diff --git a/test/Sema/ast-print.c b/test/Sema/ast-print.c index e40c4dd23180810d8685dd01b607d03f7dabd31f..382f0d38962715e83a791060f897663005ed3b46 100644 --- a/test/Sema/ast-print.c +++ b/test/Sema/ast-print.c @@ -24,8 +24,18 @@ int arr(int a[static 3]) { return a[2]; } +int rarr(int a[restrict static 3]) { + // CHECK: int a[restrict static 3] + return a[2]; +} + int varr(int n, int a[static n]) { // CHECK: int a[static n] return a[2]; } +int rvarr(int n, int a[restrict static n]) { + // CHECK: int a[restrict static n] + return a[2]; +} +