mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-13 02:21:45 +00:00
Add test for regression caused by reverted patch r315251.
llvm-svn: 315366
This commit is contained in:
parent
ad3d03193a
commit
decaff11aa
@ -218,3 +218,34 @@ namespace PR18964 {
|
||||
unsigned &*foo; //expected-error{{'foo' declared as a pointer to a reference of type}}
|
||||
extern struct {} *foo; // don't assert
|
||||
}
|
||||
|
||||
namespace typedef_name_for_linkage {
|
||||
template<typename T> struct Use {};
|
||||
|
||||
struct A { A(); A(const A&); ~A(); };
|
||||
|
||||
typedef struct {
|
||||
A a;
|
||||
} B;
|
||||
|
||||
struct C {
|
||||
typedef struct {
|
||||
A a;
|
||||
} D;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
void f() { static int n; struct Inner {};}
|
||||
} E;
|
||||
|
||||
// FIXME: Ideally this would be accepted in all modes. In C++98, we trigger a
|
||||
// linkage calculation to drive the "internal linkage type as template
|
||||
// argument" warning.
|
||||
typedef struct {
|
||||
void f() { struct Inner {}; Use<Inner> ui; }
|
||||
} F;
|
||||
#if __cplusplus < 201103L
|
||||
// expected-error@-2 {{unsupported: typedef changes linkage of anonymous type, but linkage was already computed}}
|
||||
// expected-note@-5 {{use a tag name here}}
|
||||
#endif
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user