================
@@ -0,0 +1,95 @@
+// RUN: %clang_cc1 -verify=expected,c2y -pedantic -std=c2y %s
+// RUN: %clang_cc1 -verify=expected,c2y,compat -Wpre-c2y-compat -std=c2y %s
+// RUN: %clang_cc1 -verify=expected,ext -pedantic -std=c23 %s
+// RUN: %clang_cc1 -verify=expected,ext -pedantic -x c++ -Wno-c11-extensions %s
+
+
+/* WG14 N3353: Clang 21
+ * Obsolete implicitly octal literals and add delimited escape sequences
+ */
+
+constexpr int i = 0234;  // c2y-warning {{octal literals without a '0o' prefix 
are deprecated}}
+constexpr int j = 0o234; /* ext-warning {{octal integer literals are a C2y 
extension}}
+                            compat-warning {{octal integer literals are 
incompatible with standards before C2y}}
+                          */
+
+static_assert(i == 156);
+static_assert(j == 156);
+
+// Show that 0O is the same as Oo (tested above)
+static_assert(0O1234 == 0o1234);  /* ext-warning 2 {{octal integer literals 
are a C2y extension}}
+                                     compat-warning 2 {{octal integer literals 
are incompatible with standards before C2y}}
+                                   */
+
+// Demonstrate that it works fine in the preprocessor.
+#if 0o123 != 0x53   /* ext-warning {{octal integer literals are a C2y 
extension}}
----------------
cor3ntin wrote:

Can you test
```
#define N 0o123
int x = N;
```

https://github.com/llvm/llvm-project/pull/131626
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to