+Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
+ Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
+
+ * gansidecl.h: Likewise.
+
+ * rtl.c: Likewise.
+
+ * rtl.h: Likewise.
+
+ * toplev.h: Likewise.
+
+ * tree.c: Likewise.
+
+ * tree.h: Likewise.
+
+ * varray.c: Likewise.
+
+ * varray.h: Likewise.
+
Wed Nov 10 10:57:22 1999 Clinton Popetz <cpopetz@cygnus.com>
* gcov.c (struct arcdata): Add hits and total, remove prob.
+Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
+ Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * cp-tree.h: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
+
1999-11-09 Mark Mitchell <mark@codesourcery.com>
* cp-tree.h (language_function): Remove x_last_dtor_insn and
/* Language-specific tree checkers. */
-#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
#define VAR_OR_FUNCTION_DECL_CHECK(NODE) \
({ const tree __t = NODE; \
#define CAT(a, b) a/**/b
#endif
-#if HAVE_GCC_VERSION(2,7)
+#if (GCC_VERSION >= 2007)
#define TABLE(id) static inline void CAT(init_, id) PARAMS ((void)) {} \
unsigned char id[256] = {
#define s(p, v) [p] = v,
+Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
+ Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * proj.h: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
+
Tue Oct 26 01:32:19 1999 Mark Mitchell <mark@codesourcery.com>
* com.c (poplevel): Don't call remember_end_note.
#endif
#include "system.j"
-#if ! HAVE_GCC_VERSION(2,0)
+#if (GCC_VERSION < 2000)
#error "You have to use gcc 2.x to build g77 (might be fixed in g77-0.6)."
#endif
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 HAVE_GCC_VERSION(2,7)
+#if (GCC_VERSION >= 2007)
# undef const
# undef inline
# define inline __inline__ /* Modern gcc can use `__inline__' freely. */
return return_rtx;
}
-#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
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 && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
/* 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 ! HAVE_GCC_VERSION(2,7)
-#define abort() fancy_abort (__FILE__, __LINE__, 0)
-#else
+#if (GCC_VERSION >= 2007)
#define abort() fancy_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define abort() fancy_abort (__FILE__, __LINE__, 0)
#endif
/* In alias.c */
const char *))
ATTRIBUTE_NORETURN;
-#if HAVE_GCC_VERSION(2,7)
+#if (GCC_VERSION >= 2007)
#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 && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
/* 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 && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
#define TREE_CHECK(t, code) \
({ const tree __t = t; \
extern void fancy_abort PROTO((const char *, int, const char *))
ATTRIBUTE_NORETURN;
-#if ! HAVE_GCC_VERSION(2,7)
-#define abort() fancy_abort (__FILE__, __LINE__, 0)
-#else
+#if (GCC_VERSION >= 2007)
#define abort() fancy_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+#else
+#define abort() fancy_abort (__FILE__, __LINE__, 0)
#endif
/* Check the bounds of a varray access. */
-#if defined ENABLE_CHECKING && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
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 && HAVE_GCC_VERSION(2,7)
+#if defined ENABLE_CHECKING && (GCC_VERSION >= 2007)
extern void varray_check_failed PROTO ((varray_type, size_t,
const char *, int,
const char *)) ATTRIBUTE_NORETURN;
+Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
+ Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * ansidecl.h: Define and test `GCC_VERSION', not `HAVE_GCC_VERSION'.
+
1999-10-23 08:51 -0700 Zack Weinberg <zack@bitmover.com>
* hashtab.h: Give hash_table_t a struct tag. Add prototypes
#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
+
+/* Using MACRO(x,y) in cpp #if conditionals does not work with some
+ older preprocessors. Thus we can't define something like this:
+
#define HAVE_GCC_VERSION(MAJOR, MINOR) \
(__GNUC__ > (MAJOR) || (__GNUC__ == (MAJOR) && __GNUC_MINOR__ >= (MINOR)))
-#endif /* ! HAVE_GCC_VERSION */
+
+and then test "#if HAVE_GCC_VERSION(2,7)".
+
+So instead we use the macro below and test it against specific values. */
+
+/* This macro simplifies testing whether we are using gcc, and if it
+ is of a particular minimum version. (Both major & minor numbers are
+ significant.) This macro will evaluate to 0 if we are not using
+ gcc at all. */
+#ifndef GCC_VERSION
+#define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
+#endif /* 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 ! HAVE_GCC_VERSION(2,7)
+#if (GCC_VERSION < 2007)
# define __attribute__(x)
#endif
+/* Attributes on labels were valid as of gcc 2.93. */
#ifndef ATTRIBUTE_UNUSED_LABEL
-# if ! HAVE_GCC_VERSION(2,93)
-# define ATTRIBUTE_UNUSED_LABEL
-# else
+# if (GCC_VERSION >= 2093)
# define ATTRIBUTE_UNUSED_LABEL ATTRIBUTE_UNUSED
-# endif /* GNUC < 2.93 */
+# else
+# define ATTRIBUTE_UNUSED_LABEL
+# endif /* GNUC >= 2.93 */
#endif /* ATTRIBUTE_UNUSED_LABEL */
#ifndef ATTRIBUTE_UNUSED