]> gcc.gnu.org Git - gcc.git/commitdiff
authorBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 12 Feb 1998 18:20:08 +0000 (18:20 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 12 Feb 1998 18:20:08 +0000 (18:20 +0000)
testcase for g++/14837

From-SVN: r17882

gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C
new file mode 100644 (file)
index 0000000..179740d
--- /dev/null
@@ -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 - .*
+
+
+
+
+
This page took 0.075585 seconds and 5 git commands to generate.