[clang] [Clang] allow restrict qualifier for array types with pointer types as element types (PR #120896)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 4 17:24:56 PST 2025


================
@@ -0,0 +1,20 @@
+// RUN: %clang_cc1 -std=c2y -fsyntax-only -verify -pedantic %s
+
+typedef int (*T1)[2];
+restrict T1 t1;
+static_assert(_Generic(typeof (t1), int (*restrict)[2] : 1, default : 0));
+
+typedef int *T2[2];
+restrict T2 t2;
+static_assert(_Generic(typeof (t2), int *restrict[2] : 1, default : 0));
+
+typedef int *T3[2][2];
+restrict T3 t3;
+static_assert(_Generic(typeof (t3), int *restrict[2][2] : 1, default : 0));
----------------
efriedma-quic wrote:

Maybe also add a check that we handle this correctly in function types:

```
static_assert(_Generic(void(T3 restrict), void(int *restrict(*)[2]):1, default:0));
```

https://github.com/llvm/llvm-project/pull/120896


More information about the cfe-commits mailing list