ref: 605c7cdb0678c691f3c118154501f8ec2e8f852c
parent: ff5758a151b905af1f39827d8b755c7fccd11961
author: Roberto E. Vargas Caballero <k0ga@shike2.com>
date: Thu Aug 20 20:15:07 EDT 2015
Add basic test for storage specifiers This test checks the correct parsing of several basic combination of types and storage specifiers, and the correct detection of errors.
--- /dev/null
+++ b/cc1/tests/test014.c
@@ -1,0 +1,86 @@
+/*
+name: TEST014
+description: Basic storage class test
+output:
+test014.c:22: warning: 'a' defined but not used
+test014.c:22: warning: 'k' defined but not used
+test014.c:22: warning: 'j' defined but not used
+test014.c:22: warning: 'i' defined but not used
+test014.c:22: warning: 'h' defined but not used
+test014.c:28: warning: 'par' defined but not used
+test014.c:28: warning: 'par' defined but not used
+test014.c:33: warning: 'par' defined but not used
+test014.c:35: error: incorrect storage class for file-scope declaration
+test014.c:35: error: invalid storage class for function 'd'
+test014.c:38: error: bad storage class in function parameter
+test014.c:39: error: invalid storage class for function 'func4'
+test014.c:40: error: invalid type specification
+test014.c:41: warning: 'f' defined but not used
+test014.c:44: error: conflicting types for 'd'
+G1 I a
+Y2 M b
+X3 I c
+F1
+G5 F1 func1
+{
+-
+A2 I h
+T3 M i
+R4 W j
+X5 I k
+T6 Z a
+ yI #I0
+}
+F2 I
+G6 F2 func2
+{
+R1 I par
+-
+A3 I par
+}
+T7 F2 func3
+{
+R1 I par
+-
+}
+????
+*/
+
+int a;
+static char b;
+extern int c;
+typedef unsigned e;
+
+int
+func1(void)
+{
+ auto h;
+ static char i;
+ register long j;
+ extern int k;
+ static unsigned long a;
+ return 0;
+}
+
+void
+func2(register int par)
+{
+ int par;
+}
+
+static void
+func3(register int par)
+{
+}
+
+register short d;
+
+register void
+func4(static int par)
+{
+ static register f;
+}
+
+short d;
+char d;
+