mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-19 21:10:45 +08:00
�
testcase for g++/14837 From-SVN: r17882
This commit is contained in:
parent
2df0603278
commit
c4e8876e9b
51
gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C
Normal file
51
gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C
Normal file
@ -0,0 +1,51 @@
|
||||
// Build don't link:
|
||||
//980205 bkoz
|
||||
|
||||
//7.1.3 the typedef specifier
|
||||
|
||||
|
||||
//p1
|
||||
typedef int MILES, *KLICKSP;
|
||||
MILES distance;
|
||||
extern KLICKSP metricp;
|
||||
|
||||
//p2--can redefine to same type
|
||||
typedef struct s { /* ... */ } s;
|
||||
typedef int I;
|
||||
typedef int I;
|
||||
typedef I I;
|
||||
|
||||
//p3--cannot redefine to a different type in a given scope
|
||||
class complex2 { /* ... */ };// ERROR - .*
|
||||
typedef int complex2;// ERROR - .*
|
||||
typedef int complex3;// ERROR - .*
|
||||
class complex3 { /* ... */ };// ERROR - .*
|
||||
|
||||
|
||||
//p4
|
||||
/*
|
||||
4 A typedef-name that names a class is a class-name (_class.name_). If
|
||||
a typedef-name is used
|
||||
1) following the class-key in an elaborated-type-specifier
|
||||
2) or in the class-head of a class declaration
|
||||
3) or is used as the identifier in the declarator for a
|
||||
constructor or destructor declaration
|
||||
the program is ill-formed. [Example:
|
||||
*/
|
||||
struct S {
|
||||
S();
|
||||
~S();
|
||||
};
|
||||
|
||||
typedef struct S T;
|
||||
|
||||
S a = T(); // OK
|
||||
struct T * p; // error
|
||||
|
||||
//case01
|
||||
typedef bool short;// ERROR - .*
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user