summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/mkconfig.sh21
-rw-r--r--gcc/system.h12
3 files changed, 32 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5d0eafbe426..a230405eac1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,14 @@
-2000-01-03 Graham Stott <grahams@redhat.com>
+2002-01-03 Graham Stott <grahams@redhat.com>
+
+ * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
+ forward defs for struct tags rtx_def, union_tree, rtvec_def
+ also output corresponding typedefs for rtxm, tree, and rtvcec.
+
+ * system.h: Move forward defs for struct tags rtx_def, union_tree,
+ rtvec_def along with corresponding typedefs for rtx, tree, and
+ rtvcec to config.h, hconfig.h, tconfig.h
+
+2002-01-03 Graham Stott <grahams@redhat.com>
* tree.h: Update copyright date.
(IS_EXPR_CODE_CLASS): Add parenthesis.
diff --git a/gcc/mkconfig.sh b/gcc/mkconfig.sh
index fde254a86dd..b63e40a7087 100644
--- a/gcc/mkconfig.sh
+++ b/gcc/mkconfig.sh
@@ -35,6 +35,27 @@ if [ -n "$HEADERS" ]; then
esac
fi
+# Provide three core typedefs used by everything, if we are compiling
+# GCC. These used to be found in rtl.h and tree.h, but this is no
+# longer practical. Providing these in config.h/tconfig.h/hconfig.h
+# rather than system.h allows the typedefs to be used anywhere in GCC.
+case $output in
+ *config.h | *hconfig.h | *tconfig.h)
+ echo "#ifdef IN_GCC"
+ echo "/* Provide three core typedefs used by everything, if we are compiling"
+ echo " GCC. These used to be found in rtl.h and tree.h, but this is no"
+ echo " longer practical. Providing these here rather that system.h allows"
+ echo " the typedefs to be used everywhere within GCC. */"
+ echo "struct rtx_def;"
+ echo "typedef struct rtx_def *rtx;"
+ echo "struct rtvec_def;"
+ echo "typedef struct rtvec_def *rtvec;"
+ echo "union tree_node;"
+ echo "typedef union tree_node *tree;"
+ echo "#endif"
+ ;;
+esac
+
if [ -n "$HEADERS" ]; then
echo '#ifdef IN_GCC'
for file in $HEADERS; do
diff --git a/gcc/system.h b/gcc/system.h
index a52738431d0..ccccae767ce 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -557,18 +557,6 @@ typedef char _Bool;
#define TRUE true
#define FALSE false
-/* Provide three core typedefs used by everything, if we are compiling
- GCC. These used to be found in rtl.h and tree.h, but this is no
- longer practical. */
-#ifdef IN_GCC
-struct rtx_def;
-struct rtvec_def;
-union tree_node;
-typedef struct rtx_def *rtx;
-typedef struct rtvec_def *rtvec;
-typedef union tree_node *tree;
-#endif
-
/* As the last action in this file, we poison the identifiers that
shouldn't be used. Note, luckily gcc-3.0's token-based integrated
preprocessor won't trip on poisoned identifiers that arrive from