| author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2011-12-02 08:09:07 (GMT) |
|---|---|---|
| committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2011-12-05 22:33:00 (GMT) |
| commit | c19c55a93ab1bc6db56075ca34d6e1c3f522f622 (patch) (unidiff) | |
| tree | 226e2aeaefb1f94c467e430a98a4f7de1e966166 | |
| parent | e4dcf580f007d6adcf5b0c639865d7aaab1a319d (diff) | |
| download | xserver-c19c55a93ab1bc6db56075ca34d6e1c3f522f622.zip xserver-c19c55a93ab1bc6db56075ca34d6e1c3f522f622.tar.gz | |
Fix builds of Xnest & Xephyr 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 errors:
"Display.c", line 65: Function has no return statement : x_io_error_handler
"hostx.c", line 341: Function has no return statement : x_io_error_handler
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>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
| -rw-r--r-- | hw/kdrive/ephyr/hostx.c | 5 | ||||
| -rw-r--r-- | hw/xnest/Display.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c index 47a6681..ebe4e52 100644 --- a/hw/kdrive/ephyr/hostx.c +++ b/hw/kdrive/ephyr/hostx.c | |||
| @@ -332,6 +332,11 @@ hostx_set_title (char *title) | |||
| 332 | ephyrTitle = title; | 332 | ephyrTitle = title; |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | #ifdef __SUNPRO_C | ||
| 336 | /* prevent "Function has no return statement" error for x_io_error_handler */ | ||
| 337 | #pragma does_not_return(exit) | ||
| 338 | #endif | ||
| 339 | |||
| 335 | static int _X_NORETURN | 340 | static int _X_NORETURN |
| 336 | x_io_error_handler (Display *dpy) { | 341 | x_io_error_handler (Display *dpy) { |
| 337 | ErrorF("Lost connection to X server: %s\n", strerror(errno)); | 342 | ErrorF("Lost connection to X server: %s\n", strerror(errno)); |
diff --git a/hw/xnest/Display.c b/hw/xnest/Display.c index 7acad75..3176b60 100644 --- a/hw/xnest/Display.c +++ b/hw/xnest/Display.c | |||
| @@ -55,6 +55,11 @@ Pixmap xnestScreenSaverPixmap; | |||
| 55 | XlibGC xnestBitmapGC; | 55 | XlibGC xnestBitmapGC; |
| 56 | unsigned long xnestEventMask; | 56 | unsigned long xnestEventMask; |
| 57 | 57 | ||
| 58 | #ifdef __SUNPRO_C | ||
| 59 | /* prevent "Function has no return statement" error for x_io_error_handler */ | ||
| 60 | #pragma does_not_return(exit) | ||
| 61 | #endif | ||
| 62 | |||
| 58 | static int _X_NORETURN | 63 | static int _X_NORETURN |
| 59 | x_io_error_handler (Display *dpy) { | 64 | x_io_error_handler (Display *dpy) { |
| 60 | ErrorF("Lost connection to X server: %s\n", strerror(errno)); | 65 | ErrorF("Lost connection to X server: %s\n", strerror(errno)); |
