comparison lib-src/ellcc.c @ 1743:543769b89fed

[xemacs-hg @ 2003-10-14 05:02:57 by james] New compiler.h contains compiler-specific defines. Use it everywhere.
author james
date Tue, 14 Oct 2003 05:03:13 +0000
parents 9fc738581a9d
children 854c88538753
comparison
equal deleted inserted replaced
1742:7f92ee59c996 1743:543769b89fed
76 #define EMODULES_GATHER_VERSION 76 #define EMODULES_GATHER_VERSION
77 #define EXEC_GROW_SIZE 4 77 #define EXEC_GROW_SIZE 4
78 78
79 #include <emodules.h> 79 #include <emodules.h>
80 #include <ellcc.h> /* Generated files must be included using <...> */ 80 #include <ellcc.h> /* Generated files must be included using <...> */
81 81 #include "compiler.h"
82 #ifndef ATTRIBUTE_MALLOC
83 # if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__==2 && __GNUC_MINOR__>=96))
84 # define ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
85 # else
86 # define ATTRIBUTE_MALLOC
87 # endif /* GCC version >= 2.96 */
88 #endif /* ATTRIBUTE_MALLOC */
89
90 #ifdef __GNUC_
91 # define ATTRIBUTE_FATAL __attribute__ ((noreturn, format (printf, 1, 2)))
92 #else
93 # define ATTRIBUTE_FATAL
94 #endif /* __GNUC__ */
95
96 #if defined(__GNUC__) && (__GNUC__ >= 2 || (__GNUC__==2 && __GNUC_MINOR__>=5))
97 # define ATTRIBUTE_CONST __attribute__ ((const))
98 #else
99 # define ATTRIBUTE_CONST
100 #endif
101
102 82
103 #ifndef HAVE_SHLIB 83 #ifndef HAVE_SHLIB
104 int 84 int
105 main (int argc, char *argv[]) 85 main (int argc, char *argv[])
106 { 86 {
186 */ 166 */
187 167
188 static void *xmalloc (size_t size) ATTRIBUTE_MALLOC; 168 static void *xmalloc (size_t size) ATTRIBUTE_MALLOC;
189 static void *xrealloc (void *ptr, size_t size) ATTRIBUTE_MALLOC; 169 static void *xrealloc (void *ptr, size_t size) ATTRIBUTE_MALLOC;
190 static char *xstrdup (char *) ATTRIBUTE_MALLOC; 170 static char *xstrdup (char *) ATTRIBUTE_MALLOC;
191 static void fatal (char *, ...) ATTRIBUTE_FATAL; 171 static DECLARE_DOESNT_RETURN (fatal (char *, ...)) PRINTF_ARGS (1, 2);
192 static char ** add_string (char **, char *); 172 static char ** add_string (char **, char *);
193 static char ** add_to_argv (char **, const char *); 173 static char ** add_to_argv (char **, const char *);
194 static char ** do_compile_mode (void); 174 static char ** do_compile_mode (void);
195 static char ** do_link_mode (void); 175 static char ** do_link_mode (void);
196 static char ** do_init_mode (void); 176 static char ** do_init_mode (void);
465 } 445 }
466 return result; 446 return result;
467 } 447 }
468 448
469 /* Print error message and exit. */ 449 /* Print error message and exit. */
470 static void 450 static DOESNT_RETURN
471 fatal (char *format, ...) 451 fatal (char *format, ...)
472 { 452 {
473 va_list ap; 453 va_list ap;
474 454
475 va_start (ap, format); 455 va_start (ap, format);