]> git.sur5r.net Git - cc65/commitdiff
Fixed the last fix. Sigh:-(
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 20 Jan 2003 21:02:57 +0000 (21:02 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 20 Jan 2003 21:02:57 +0000 (21:02 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1909 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/compile.c

index 9332e646e344f0bdcd9bda0796d01d9128fa7caa..ca5005c4d1194001a5deabe5967c68f7b7119330 100644 (file)
@@ -80,9 +80,9 @@ static void Parse (void)
     /* Parse until end of input */
     while (CurTok.Tok != TOK_CEOF) {
 
-       DeclSpec        Spec;
+       DeclSpec        Spec;
        Declaration     Decl;
-       int             NeedStorage;
+       int             NeedStorage;
 
        /* Check for empty statements */
        if (CurTok.Tok == TOK_SEMI) {
@@ -107,11 +107,13 @@ static void Parse (void)
        ParseDeclSpec (&Spec, SC_EXTERN | SC_STATIC, T_INT);
 
        /* Don't accept illegal storage classes */
-               if ((Spec.StorageClass & SC_AUTO) != 0 &&
-            (Spec.StorageClass & SC_REGISTER) != 0) {
-           Error ("Illegal storage class");
-           Spec.StorageClass = SC_EXTERN | SC_STATIC;
-       }
+        if ((Spec.StorageClass & SC_TYPE) == 0) {
+            if ((Spec.StorageClass & SC_AUTO) != 0 ||
+                (Spec.StorageClass & SC_REGISTER) != 0) {
+                Error ("Illegal storage class");
+                Spec.StorageClass = SC_EXTERN | SC_STATIC;
+            }
+        }
 
        /* Check if this is only a type declaration */
        if (CurTok.Tok == TOK_SEMI) {