+Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
+ __GNUC__ and __GNUC_MINOR__.
+
+ * gansidecl.h: Likewise.
+
+ * rtl.c: Likewise.
+
+ * rtl.h: Likewise.
+
+ * toplev.h: Likewise.
+
+ * tree.c: Likewise.
+
+ * tree.h: Likewise.
+
+ * varray.c: Likewise.
+
+ * varray.h: Likewise.
+
Sun Oct 10 13:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* loop.c (find_and_verify_loops): When looking for a BARRIER, don't
+1999-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cp-tree.h: Use HAVE_GCC_VERSION instead of explicitly testing
+ __GNUC__ and __GNUC_MINOR__.
+
1999-10-09 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (make_rtl_for_local_static): New function.
/* Language-specific tree checkers. */
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
#define VAR_OR_FUNCTION_DECL_CHECK(NODE) \
({ const tree __t = NODE; \
/* If gcc is in use (stage2/stage3) we can make these tables initialized
data. */
-#if defined __GNUC__ && (__GNUC__ > 2 \
- || (__GNUC__ == 2 && __GNUC_MINOR__ > 6))
+#if HAVE_GCC_VERSION(2,7)
/* Table to tell if a character is legal as the second or later character
of a C identifier. */
U_CHAR is_idchar[256] =
+Sun Oct 10 08:40:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * proj.h: Use HAVE_GCC_VERSION instead of explicitly testing
+ __GNUC__ and __GNUC_MINOR__. Don't define BUILT_WITH_270. Define
+ macro UNUSED in terms of ATTRIBUTE_UNUSED.
+
Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk>
* com.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
#endif
#include "system.j"
-#if !defined (__GNUC__) || (__GNUC__ < 2)
+#if ! HAVE_GCC_VERSION(2,0)
#error "You have to use gcc 2.x to build g77 (might be fixed in g77-0.6)."
#endif
-#ifndef BUILT_WITH_270
-#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
-#define BUILT_WITH_270 1
-#else
-#define BUILT_WITH_270 0
-#endif
-#endif /* !defined (BUILT_WITH_270) */
-
/* Include files everyone gets. <assert.h> is needed for assert().
<stddef.h> is needed for offsetof, but technically also NULL,
size_t, ptrdiff_t, and so on. */
#define ARRAY_SIZE(a) (sizeof(a)/sizeof(a[0]))
#ifndef UNUSED /* Compile with -DUNUSED= if cc doesn't support this. */
-#if BUILT_WITH_270
-#define UNUSED __attribute__ ((unused))
-#else /* !BUILT_WITH_270 */
-#define UNUSED
-#endif /* !BUILT_WITH_270 */
+#define UNUSED ATTRIBUTE_UNUSED
#endif /* !defined (UNUSED) */
#ifndef dmpout
need to do this very early; i.e. before any systems header files or
gcc header files in case they use these keywords. Otherwise
conflicts might occur. */
-#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+#if HAVE_GCC_VERSION(2,7)
# undef const
# undef inline
# define inline __inline__ /* Modern gcc can use `__inline__' freely. */
return return_rtx;
}
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
void
rtl_check_failed_bounds (r, n, file, line, func)
rtx r;
/* General accessor macros for accessing the fields of an rtx. */
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
/* The bit with a star outside the statement expr and an & inside is
so that N can be evaluated only once. */
#define RTL_CHECK1(RTX, N, C1) \
extern void fancy_abort PROTO((const char *, int, const char *))
ATTRIBUTE_NORETURN;
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#if ! HAVE_GCC_VERSION(2,7)
#define abort() fancy_abort (__FILE__, __LINE__, 0)
#else
#define abort() fancy_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
const char *))
ATTRIBUTE_NORETURN;
-#if defined __GNUC__ && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if HAVE_GCC_VERSION(2,7)
#define fatal_insn(msgid, insn) \
_fatal_insn (msgid, insn, __FILE__, __LINE__, __PRETTY_FUNCTION__)
#define fatal_insn_not_found(insn) \
return non_const_bits;
}
\f
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
/* Complain that the tree code of NODE does not match the expected CODE.
FILE, LINE, and FUNCTION are of the caller. */
void
/* When checking is enabled, errors will be generated if a tree node
is accessed incorrectly. The macros abort with a fatal error. */
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
#define TREE_CHECK(t, code) \
({ const tree __t = t; \
extern void fancy_abort PROTO((const char *, int, const char *))
ATTRIBUTE_NORETURN;
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#if ! HAVE_GCC_VERSION(2,7)
#define abort() fancy_abort (__FILE__, __LINE__, 0)
#else
#define abort() fancy_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
/* Check the bounds of a varray access. */
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || __GNUC_MINOR__ > 6)
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
extern void error PVPROTO ((const char *, ...)) ATTRIBUTE_PRINTF_1;
#define VARRAY_SIZE(VA) ((VA)->num_elements)
/* Check for VARRAY_xxx macros being in bound. */
-#if defined ENABLE_CHECKING && (__GNUC__ > 2 || (__GNUC__ == 2 &&__GNUC_MINOR__ > 6))
+#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
extern void varray_check_failed PROTO ((varray_type, size_t,
const char *, int,
const char *)) ATTRIBUTE_NORETURN;
+1999-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ansidecl.h (HAVE_GCC_VERSION): New macro. Use it instead of
+ explicitly testing __GNUC__ and __GNUC_MINOR__.
+
+ (ATTRIBUTE_PRINTF): Use `__format__', not `format'.
+
1999-09-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* libiberty.h (make_temp_file): Add a prototype.
#endif /* ANSI C. */
+/* This macro will return true if we are using gcc, and it is of a
+ particular minimum version (both major & minor numbers are checked.) */
+#ifndef HAVE_GCC_VERSION
+#define HAVE_GCC_VERSION(MAJOR, MINOR) \
+ (__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
+#endif /* ! HAVE_GCC_VERSION */
+
/* Define macros for some gcc attributes. This permits us to use the
macros freely, and know that they will come into play for the
version of gcc in which they are supported. */
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
+#if ! HAVE_GCC_VERSION(2,7)
# define __attribute__(x)
#endif
#ifndef ATTRIBUTE_UNUSED_LABEL
-# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 93)
+# if ! HAVE_GCC_VERSION(2,93)
# define ATTRIBUTE_UNUSED_LABEL
# else
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
#endif /* ATTRIBUTE_NORETURN */
#ifndef ATTRIBUTE_PRINTF
-#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((format (__printf__, m, n)))
+#define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n)))
#define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2)
#define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3)
#define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4)