]> git.sur5r.net Git - cc65/commitdiff
A main function not returning an int is not allowed in standard C
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 6 Jul 2004 14:25:48 +0000 (14:25 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 6 Jul 2004 14:25:48 +0000 (14:25 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3147 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/function.c

index d4409afbab95f4c3554425d5cf42bddd77f2e881..bed87a574b8fa2795c562ded0fa8bd1171c478f9 100644 (file)
@@ -49,6 +49,7 @@
 #include "scanner.h"
 #include "segments.h"
 #include "stackptr.h"
+#include "standard.h"
 #include "stmt.h"
 #include "symtab.h"
 #include "function.h"
@@ -373,6 +374,13 @@ void NewFunc (SymEntry* Func)
             Error ("`main' cannot be declared as __fastcall__");
         }
 
+        /* If cc65 extensions aren't enabled, don't allow a main function that 
+         * doesn't return an int.
+         */
+        if (IS_Get (&Standard) != STD_CC65 && CurrentFunc->ReturnType[0] != T_INT) {
+            Error ("`main' must always return an int");
+        }
+
         /* If main() takes parameters, generate a forced import to a function
          * that will setup these parameters. This way, programs that do not
          * need the additional code will not get it.