2013-09-19 07:23:17 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s -DNONE -Wno-gnu
|
2015-11-12 03:34:47 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s -DNONE -Wno-gnu
|
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -DNONE -Wno-gnu
|
|
|
|
|
2013-09-19 07:23:17 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s -DALL -Wgnu
|
2015-11-12 03:34:47 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s -DALL -Wgnu
|
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -DALL -Wgnu
|
|
|
|
|
2013-09-19 07:23:17 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s -DALL -Wno-gnu \
|
|
|
|
// RUN: -Wgnu-anonymous-struct -Wredeclared-class-member \
|
|
|
|
// RUN: -Wgnu-flexible-array-union-member -Wgnu-folding-constant \
|
|
|
|
// RUN: -Wgnu-empty-struct
|
2015-11-12 03:34:47 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s -DALL -Wno-gnu \
|
|
|
|
// RUN: -Wgnu-anonymous-struct -Wredeclared-class-member \
|
|
|
|
// RUN: -Wgnu-flexible-array-union-member -Wgnu-folding-constant \
|
|
|
|
// RUN: -Wgnu-empty-struct
|
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -DALL -Wno-gnu \
|
|
|
|
// RUN: -Wgnu-anonymous-struct -Wredeclared-class-member \
|
|
|
|
// RUN: -Wgnu-flexible-array-union-member -Wgnu-folding-constant \
|
|
|
|
// RUN: -Wgnu-empty-struct
|
|
|
|
|
2013-09-19 07:23:17 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s -DNONE -Wgnu \
|
|
|
|
// RUN: -Wno-gnu-anonymous-struct -Wno-redeclared-class-member \
|
|
|
|
// RUN: -Wno-gnu-flexible-array-union-member -Wno-gnu-folding-constant \
|
|
|
|
// RUN: -Wno-gnu-empty-struct
|
2015-11-12 03:34:47 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s -DNONE -Wgnu \
|
|
|
|
// RUN: -Wno-gnu-anonymous-struct -Wno-redeclared-class-member \
|
|
|
|
// RUN: -Wno-gnu-flexible-array-union-member -Wno-gnu-folding-constant \
|
|
|
|
// RUN: -Wno-gnu-empty-struct
|
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s -DNONE -Wgnu \
|
|
|
|
// RUN: -Wno-gnu-anonymous-struct -Wno-redeclared-class-member \
|
|
|
|
// RUN: -Wno-gnu-flexible-array-union-member -Wno-gnu-folding-constant \
|
|
|
|
// RUN: -Wno-gnu-empty-struct
|
|
|
|
|
2013-09-19 07:23:17 +08:00
|
|
|
// Additional disabled tests:
|
|
|
|
// %clang_cc1 -fsyntax-only -verify %s -DANONYMOUSSTRUCT -Wno-gnu -Wgnu-anonymous-struct
|
|
|
|
// %clang_cc1 -fsyntax-only -verify %s -DREDECLAREDCLASSMEMBER -Wno-gnu -Wredeclared-class-member
|
|
|
|
// %clang_cc1 -fsyntax-only -verify %s -DFLEXIBLEARRAYUNIONMEMBER -Wno-gnu -Wgnu-flexible-array-union-member
|
|
|
|
// %clang_cc1 -fsyntax-only -verify %s -DFOLDINGCONSTANT -Wno-gnu -Wgnu-folding-constant
|
|
|
|
// %clang_cc1 -fsyntax-only -verify %s -DEMPTYSTRUCT -Wno-gnu -Wgnu-empty-struct
|
|
|
|
|
|
|
|
#if NONE
|
|
|
|
// expected-no-diagnostics
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#if ALL || ANONYMOUSSTRUCT
|
|
|
|
// expected-warning@+5 {{anonymous structs are a GNU extension}}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct as {
|
|
|
|
int x;
|
|
|
|
struct {
|
|
|
|
int a;
|
|
|
|
float b;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#if ALL || REDECLAREDCLASSMEMBER
|
|
|
|
// expected-note@+6 {{previous declaration is here}}
|
|
|
|
// expected-warning@+6 {{class member cannot be redeclared}}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
namespace rcm {
|
|
|
|
class A {
|
|
|
|
class X;
|
|
|
|
class X;
|
|
|
|
class X {};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#if ALL || FLEXIBLEARRAYUNIONMEMBER
|
|
|
|
// expected-warning@+6 {{flexible array member 'c1' in a union is a GNU extension}}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct faum {
|
|
|
|
int l;
|
|
|
|
union {
|
|
|
|
int c1[];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2015-11-12 03:34:47 +08:00
|
|
|
#if (ALL || FOLDINGCONSTANT) && (__cplusplus <= 199711L) // C++03 or earlier modes
|
2013-09-19 07:23:17 +08:00
|
|
|
// expected-warning@+4 {{in-class initializer for static data member is not a constant expression; folding it to a constant is a GNU extension}}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct fic {
|
|
|
|
static const int B = int(0.75 * 1000 * 1000);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#if ALL || EMPTYSTRUCT
|
|
|
|
// expected-warning@+3 {{flexible array member 'a' in otherwise empty struct is a GNU extension}}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
struct ofam {int a[];};
|
|
|
|
|