summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2011-12-04 09:01:28 -0800
committerAlan Coopersmith <alan.coopersmith@oracle.com>2011-12-04 09:02:36 -0800
commitb6927e08121d5ccd9ef061ec0c393a7e23220114 (patch)
tree1556ee1870fa1613962cb4535f781592c871d31d
parentf5c245c4b24b25103fc6d8d3a77121a94689a5c0 (diff)
Fix builds of lisp/core.c with Solaris Studio compilers
Required in order to build with Studio cc now that xorg-macros is setting -errwarn=E_FUNC_HAS_NO_RETURN_STMT since a bug in the Solaris system headers causes the noreturn attribute to not be correctly applied to the exit() prototype in <stdlib.h> when building with Studio instead of gcc. Otherwise compiler exits with error: "lisp/core.c", line 4329: Function has no return statement : Lisp_Quit Uses Studio-specific pragma instead of adding another exit() prototype with a noreturn attribute to avoid causing gcc to warn about having a redundant prototype for the exit() function. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r--lisp/core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lisp/core.c b/lisp/core.c
index 89f5d5c..a9792e9 100644
--- a/lisp/core.c
+++ b/lisp/core.c
@@ -4308,6 +4308,11 @@ Lisp_Pushnew(LispBuiltin *builtin)
return (result);
}
+#ifdef __SUNPRO_C
+/* prevent "Function has no return statement" error for Lisp_Quit */
+#pragma does_not_return(exit)
+#endif
+
LispObj *
Lisp_Quit(LispBuiltin *builtin)
/*