1 | // RUN: %clang_cc1 %s -fsyntax-only -verify -pedantic -std=c11 |
2 | |
3 | __auto_type a = 5; // expected-warning {{'__auto_type' is a GNU extension}} |
4 | __extension__ __auto_type a1 = 5; |
5 | #pragma clang diagnostic ignored "-Wgnu-auto-type" |
6 | __auto_type b = 5.0; |
7 | __auto_type c = &b; |
8 | __auto_type d = (struct {int a;}) {5}; |
9 | _Static_assert(__builtin_types_compatible_p(__typeof(a), int), ""); |
10 | __auto_type e = e; // expected-error {{variable 'e' declared with deduced type '__auto_type' cannot appear in its own initializer}} |
11 | |
12 | struct s { __auto_type a; }; // expected-error {{'__auto_type' not allowed in struct member}} |
13 | |
14 | __auto_type f = 1, g = 1.0; // expected-error {{'__auto_type' deduced as 'int' in declaration of 'f' and deduced as 'double' in declaration of 'g'}} |
15 | |
16 | __auto_type h() {} // expected-error {{'__auto_type' not allowed in function return type}} |
17 | |
18 | int i() { |
19 | struct bitfield { int field:2; }; |
20 | __auto_type j = (struct bitfield){1}.field; // expected-error {{cannot pass bit-field as __auto_type initializer in C}} |
21 | |
22 | } |
23 | |
24 | int k(l) |
25 | __auto_type l; // expected-error {{'__auto_type' not allowed in K&R-style function parameter}} |
26 | {} |
27 | |