| /* RUN: %clang_cc1 -std=c99 -verify -emit-llvm -o - %s | FileCheck %s |
| RUN: %clang_cc1 -std=c11 -verify -emit-llvm -o - %s | FileCheck %s |
| RUN: %clang_cc1 -std=c17 -verify -emit-llvm -o - %s | FileCheck %s |
| RUN: %clang_cc1 -std=c2x -verify -emit-llvm -o - %s | FileCheck %s |
| */ |
| |
| /* WG14 DR208: yes |
| * Ambiguity in initialization |
| */ |
| int dr208_init(int); |
| void dr208(void) { |
| int a[2] = { |
| dr208_init(0), /* expected-note {{previous initialization with side effects is here (side effects will not occur at run time)}} */ |
| dr208_init(1), |
| [0] = dr208_init(2) /* expected-warning {{initializer overrides prior initialization of this subobject}} */ |
| }; |
| |
| /* CHECK-NOT: call {{signext i32|i32}} @dr208_init(i32 noundef {{(signext )?}}0) |
| CHECK-DAG: call {{signext i32|i32}} @dr208_init(i32 noundef {{(signext )?}}1) |
| CHECK-DAG: call {{signext i32|i32}} @dr208_init(i32 noundef {{(signext )?}}2) |
| CHECK-NOT: call {{signext i32|i32}} @dr208_init(i32 noundef {{(signext )?}}0) |
| */ |
| } |
| |