OSDN Git Service

* pa/pa.md (fcmp patterns): Do not try to eliminate
[pf3gnuchains/gcc-fork.git] / gcc / tree.h
index 8dd81b5..343c037 100644 (file)
@@ -1,5 +1,5 @@
 /* Front-end tree definitions for GNU compiler.
-   Copyright (C) 1989, 1993, 1994, 1995 Free Software Foundation, Inc.
+   Copyright (C) 1989, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -97,6 +97,8 @@ enum built_in_function
   BUILT_IN_APPLY_ARGS,
   BUILT_IN_APPLY,
   BUILT_IN_RETURN,
+  BUILT_IN_SETJMP,
+  BUILT_IN_LONGJMP,
 
   /* C++ extensions */
   BUILT_IN_NEW,
@@ -508,6 +510,8 @@ struct tree_common
 struct tree_int_cst
 {
   char common[sizeof (struct tree_common)];
+  struct rtx_def *rtl; /* acts as link to register transfer language
+                          (rtl) info */
   HOST_WIDE_INT int_cst_low;
   HOST_WIDE_INT int_cst_high;
 };
@@ -896,6 +900,8 @@ struct tree_type
 #define DECL_ARGUMENTS(NODE) ((NODE)->decl.arguments)
 /* In FUNCTION_DECL, holds the decl for the return value.  */
 #define DECL_RESULT(NODE) ((NODE)->decl.result)
+/* For a TYPE_DECL, holds the "original" type.  (TREE_TYPE has the copy.) */
+#define DECL_ORIGINAL_TYPE(NODE) ((NODE)->decl.result)
 /* In PARM_DECL, holds the type as written (perhaps a function or array).  */
 #define DECL_ARG_TYPE_AS_WRITTEN(NODE) ((NODE)->decl.result)
 /* For a FUNCTION_DECL, holds the tree of BINDINGs.
@@ -1172,56 +1178,11 @@ union tree_node
   struct tree_exp exp;
   struct tree_block block;
  };
-
-/* Add prototype support.  */
-#ifndef PROTO
-#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
-#define PROTO(ARGS) ARGS
-#else
-#define PROTO(ARGS) ()
-#endif
-#endif
-
-#ifndef VPROTO
-#ifdef __STDC__
-#define PVPROTO(ARGS)          ARGS
-#define VPROTO(ARGS)            ARGS
-#define VA_START(va_list,var)  va_start(va_list,var)
-#else
-#define PVPROTO(ARGS)          ()
-#define VPROTO(ARGS)            (va_alist) va_dcl
-#define VA_START(va_list,var)  va_start(va_list)
-#endif
-#endif
-
-#ifndef STDIO_PROTO
-#ifdef BUFSIZ
-#define STDIO_PROTO(ARGS) PROTO(ARGS)
-#else
-#define STDIO_PROTO(ARGS) ()
-#endif
-#endif
+\f
+#include "gansidecl.h"
 
 #define NULL_TREE (tree) NULL
 
-/* Define a generic NULL if one hasn't already been defined.  */
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#ifndef GENERIC_PTR
-#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
-#define GENERIC_PTR void *
-#else
-#define GENERIC_PTR char *
-#endif
-#endif
-
-#ifndef NULL_PTR
-#define NULL_PTR ((GENERIC_PTR)0)
-#endif
-\f
 /* The following functions accept a wide integer argument.  Rather than
    having to cast on every function call, we use a macro instead, that is
    defined here and in rtl.h.  */
@@ -1242,6 +1203,8 @@ extern char *xmalloc ();
 extern char *xrealloc ();
 #endif
 
+extern char *xstrdup                   PROTO((char *));
+
 extern char *oballoc                   PROTO((int));
 extern char *permalloc                 PROTO((int));
 extern char *savealloc                 PROTO((int));
@@ -1475,6 +1438,17 @@ extern int lvalue_or_else                PROTO((tree, char *));
 
 extern tree save_expr                  PROTO((tree));
 
+/* unsave_expr (EXP) returns an expression equivalent to EXP but it
+   can be used multiple times and will evaluate EXP, in it's entirety
+   each time.  */
+
+extern tree unsave_expr                        PROTO((tree));
+
+/* unsave_expr_now (EXP) resets EXP in place, so that it can be
+   expanded again.  */
+
+extern tree unsave_expr_now            PROTO((tree));
+
 /* Return 1 if EXP contains a PLACEHOLDER_EXPR; i.e., if it represents a size
    or offset that depends on a field within a record.
 
@@ -1490,12 +1464,6 @@ extern int contains_placeholder_p        PROTO((tree));
 
 extern tree substitute_in_expr         PROTO((tree, tree, tree));
 
-/* Given a type T, a FIELD_DECL F, and a replacement value R,
-   return a new type with all size expressions that contain F
-   updated by replacing the reference to F with R.  */
-
-extern tree substitute_in_type         PROTO((tree, tree, tree));
-
 /* variable_size (EXP) is like save_expr (EXP) except that it
    is for the special case of something that is part of a
    variable size for a data type.  It makes special arrangements
@@ -1668,9 +1636,9 @@ extern void (*incomplete_decl_finalize_hook) ();
 \f
 /* In tree.c */
 extern char *perm_calloc                       PROTO((int, long));
-extern tree get_set_constructor_bits           PROTO((tree, char*, int));
+extern tree get_set_constructor_bits           PROTO((tree, char *, int));
 extern tree get_set_constructor_bytes          PROTO((tree,
-                                                      unsigned char*, int));
+                                                      unsigned char *, int));
 \f
 /* In stmt.c */