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

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 11 07:02:51 PST 2025


================
@@ -0,0 +1,26 @@
+// RUN: %clang_cc1 -std=c23 -fsyntax-only -verify %s
+// RUN: %clang_cc1 -std=c17 -fsyntax-only -pedantic -verify=pedantic %s
+// RUN: %clang_cc1 -std=c17 -fsyntax-only -Wpre-c2x-compat -verify=pre-c2x-compat %s
+
+typedef int (*T1)[2];
+restrict T1 t1;         // pedantic-warning {{'restrict' qualifier on pointers to arrays is a C23 extension}} \
----------------
AaronBallman wrote:

Yes, these are the kind of diagnostics we were looking for. The behavior around the error cases looks correct to me, but some of the warning diagnostics surprise me.

For example, this case is *not* an extension. C17 and before allowed restrict to apply only to pointers. A pointer to an array is a pointer, so that's always been supported: https://godbolt.org/z/Y8ccbrM36 So I don't think we should emit the diagnostics in this case.

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


More information about the cfe-commits mailing list