66// RUN: %clang_cc1 -std=c++20 %s -verify=cxx20,expected -Wno-c99-designator -Wno-reorder-init-list -Wno-initializer-overrides
77// RUN: %clang_cc1 -std=c++20 %s -verify=cxx20,expected,wmissing,wmissing-designated -Wmissing-field-initializers -Wno-c99-designator -Wno-reorder-init-list -Wno-initializer-overrides
88// RUN: %clang_cc1 -std=c++20 %s -verify=cxx20,expected,wmissing -Wmissing-field-initializers -Wno-missing-designated-field-initializers -Wno-c99-designator -Wno-reorder-init-list -Wno-initializer-overrides
9- // RUN: %clang_cc1 -std=c++20 -Wreorder-init-list -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
9+
1010
1111namespace class_with_ctor {
1212 struct A { // cxx20-note 6{{candidate}}
@@ -38,8 +38,6 @@ A a1 = {
3838 .y = 1 , // reorder-note {{previous initialization for field 'y' is here}}
3939 .x = 2 // reorder-error {{ISO C++ requires field designators to be specified in declaration order; field 'y' will be initialized after field 'x'}}
4040};
41- // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:3-[[@LINE-3]]:9}:".x = 2"
42- // CHECK: fix-it:"{{.*}}":{[[@LINE-3]]:3-[[@LINE-3]]:9}:".y = 1"
4341int arr[3 ] = {[1 ] = 5 }; // pedantic-error {{array designators are a C99 extension}}
4442B b = {.a .x = 0 }; // pedantic-error {{nested designators are a C99 extension}}
4543A a2 = {
@@ -73,12 +71,6 @@ C c = {
7371 .x = 1 , // reorder-error {{declaration order}} override-error {{overrides prior initialization}} override-note {{previous}}
7472 .x = 1 , // override-error {{overrides prior initialization}}
7573};
76- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:3-[[@LINE-7]]:9}:".x = 1"
77- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:3-[[@LINE-7]]:9}:".x = 1"
78- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:3-[[@LINE-7]]:9}:".x = 1"
79- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:3-[[@LINE-7]]:9}:".x = 1"
80- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:3-[[@LINE-7]]:9}:".y = 1"
81- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:3-[[@LINE-7]]:9}:".y = 1"
8274
8375struct Foo { int a, b; };
8476
@@ -126,8 +118,6 @@ namespace overload_resolution {
126118 void i () {
127119 h ({.x = 1 , .y = 2 });
128120 h ({.y = 1 , .x = 2 }); // reorder-error {{declaration order}} reorder-note {{previous}}
129- // CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:8-[[@LINE-1]]:14}:".x = 2"
130- // CHECK: fix-it:"{{.*}}":{[[@LINE-2]]:16-[[@LINE-2]]:22}:".y = 1"
131121 h ({.x = 1 }); // expected-error {{ambiguous}}
132122 }
133123
@@ -238,16 +228,6 @@ struct : public A, public B {
238228 .a = 1 , // reorder-error {{field 'b' will be initialized after field 'a'}}
239229};
240230}
241- // CHECK: fix-it:"{{.*}}":{[[@LINE-17]]:4-[[@LINE-17]]:8}:".x=2"
242- // CHECK: fix-it:"{{.*}}":{[[@LINE-15]]:4-[[@LINE-15]]:8}:".y=1"
243- // CHECK: fix-it:"{{.*}}":{[[@LINE-14]]:4-[[@LINE-14]]:8}:".z=0"
244- // CHECK: fix-it:"{{.*}}":{[[@LINE-14]]:4-[[@LINE-14]]:8}:".a=4"
245- // CHECK: fix-it:"{{.*}}":{[[@LINE-14]]:4-[[@LINE-14]]:8}:".b=3"
246- // CHECK: fix-it:"{{.*}}":{[[@LINE-14]]:5-[[@LINE-14]]:11}:".a = 1"
247- // CHECK: fix-it:"{{.*}}":{[[@LINE-13]]:5-[[@LINE-13]]:11}:".b = 1"
248- // CHECK: fix-it:"{{.*}}":{[[@LINE-12]]:5-[[@LINE-12]]:11}:".c = 1"
249- // CHECK: fix-it:"{{.*}}":{[[@LINE-12]]:5-[[@LINE-12]]:11}:".d = 1"
250- // CHECK: fix-it:"{{.*}}":{[[@LINE-12]]:5-[[@LINE-12]]:11}:".e = 1"
251231
252232namespace GH63759 {
253233struct C {
@@ -268,39 +248,3 @@ void foo() {
268248 //
269249}
270250}
271-
272- namespace reorder_derived {
273- struct col {
274- int r;
275- int g;
276- int b;
277- };
278-
279- struct point {
280- float x;
281- float y;
282- float z;
283- };
284-
285- struct lols : public col , public point {
286- int z2;
287- int z1;
288- };
289-
290- void fosas () {
291- lols a {
292- {.b = 1 , .g = 2 , .r = 3 },
293- { .z = 1 , .y =2 , .x = 3 },
294- .z1 = 1 ,
295- .z2 = 2 ,
296- };
297- }
298- // CHECK: fix-it:"{{.*}}":{[[@LINE-6]]:6-[[@LINE-6]]:12}:".r = 3"
299- // CHECK: fix-it:"{{.*}}":{[[@LINE-7]]:14-[[@LINE-7]]:20}:".g = 2"
300- // CHECK: fix-it:"{{.*}}":{[[@LINE-8]]:22-[[@LINE-8]]:28}:".b = 1"
301- // CHECK: fix-it:"{{.*}}":{[[@LINE-8]]:15-[[@LINE-8]]:19}:".y=2"
302- // CHECK: fix-it:"{{.*}}":{[[@LINE-9]]:21-[[@LINE-9]]:28}:".z = 1"
303- // CHECK: fix-it:"{{.*}}":{[[@LINE-10]]:7-[[@LINE-10]]:13}:".x = 3"
304- // CHECK: fix-it:"{{.*}}":{[[@LINE-10]]:5-[[@LINE-10]]:12}:".z2 = 2"
305- // CHECK: fix-it:"{{.*}}":{[[@LINE-10]]:5-[[@LINE-10]]:12}:".z1 = 1"
306- } // namespace reorder_derived
0 commit comments