llvm-project/clang/test/Sema/nested-redef.c
Qiu Chaofan 267a437920
[Clang][Sema] Skip RecordDecl when checking scope of declarations (#69432)
In non C++ mode, struct definitions does not create a scope for
declaration.
2023-11-06 11:54:51 +08:00

35 lines
733 B
C

// RUN: %clang_cc1 -fsyntax-only -verify %s
struct X { // expected-note{{previous definition is here}}
struct X { } x; // expected-error{{nested redefinition of 'X'}}
};
struct Y { };
void f(void) {
struct Y { }; // okay: this is a different Y
}
struct T;
struct Z {
struct T { int x; } t;
struct U { int x; } u;
};
void f2(void) {
struct T t;
struct U u;
}
void f3(void) {
struct G { // expected-note{{previous definition is here}}
struct G {}; // expected-error{{nested redefinition of 'G'}}
};
}
void f4(void) {
struct G { // expected-note 2{{previous definition is here}}
struct G {}; // expected-error{{nested redefinition of 'G'}}
};
struct G {}; // expected-error{{redefinition of 'G'}}
}