C99 array parameters can have index-type CVR qualifiers, and the TypePrinter
should print them when present (and we were not for constant-sized arrays).
Otherwise, we'd drop the restrict in:
int foo(int a[restrict static 3]) { ... }
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213445
91177308-0d34-0410-b5e6-
96231b3b80d8
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 ";
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];
+}
+