* A new g++ prototype patch
@ 1997-08-27 17:31 H.J. Lu
0 siblings, 0 replies; only message in thread
From: H.J. Lu @ 1997-08-27 17:31 UTC (permalink / raw)
To: egcs
Hi,
Here is a new g++ prototype patch.
--
H.J. Lu (hjl@gnu.ai.mit.edu)
---
Fri Aug 22 18:26:29 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
* Makefile.in (parse.o, decl.o): Also depend on
$(srcdir)/../except.h $(srcdir)/../output.h.
(decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
$(srcdir)/../except.h $(srcdir)/../output.h.
(typeck.o, init.o): Also depend on $(srcdir)/../expr.h
../insn-codes.h.
* call.c, cp-tree.h, decl.c, hash.h, tree.c: Finish prototyping.
* expr.c (cplus_expand_expr): Make it static.
* decl2.c, init.c, typeck.c: Include "expr.h".
(expand_expr): Use proper values when calling the function.
Index: gcc/cp/Makefile.in
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/Makefile.in,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 Makefile.in
--- Makefile.in 1997/08/26 00:20:58 1.1.1.1
+++ Makefile.in 1997/08/26 00:23:42
@@ -191,7 +191,8 @@
PARSE_H = $(srcdir)/parse.h
PARSE_C = $(srcdir)/parse.c
-parse.o : $(PARSE_C) $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h
+parse.o : $(PARSE_C) $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h lex.h \
+ $(srcdir)/../except.h $(srcdir)/../output.h
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(BIG_SWITCHFLAG) \
`echo $(PARSE_C) | sed 's,^\./,,'`
@@ -224,15 +225,19 @@
lex.o : lex.c $(CONFIG_H) $(CXX_TREE_H) \
$(PARSE_H) input.c $(srcdir)/../flags.h hash.h lex.h $(srcdir)/../c-pragma.h
decl.o : decl.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \
- lex.h decl.h $(srcdir)/../stack.h
+ lex.h decl.h $(srcdir)/../stack.h $(srcdir)/../output.h \
+ $(srcdir)/../except.h
decl2.o : decl2.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h \
- lex.h decl.h
+ lex.h decl.h $(srcdir)/../expr.h ../insn-codes.h $(srcdir)/../except.h \
+ $(srcdir)/../output.h $(srcdir)/../except.h
typeck2.o : typeck2.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
-typeck.o : typeck.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
+typeck.o : typeck.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
+ $(srcdir)/../expr.h ../insn-codes.h
class.o : class.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h
call.o : call.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h class.h
friend.o : friend.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
-init.o : init.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H)
+init.o : init.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../flags.h $(RTL_H) \
+ $(srcdir)/../expr.h ../insn-codes.h
method.o : method.c $(CONFIG_H) $(CXX_TREE_H) class.h
cvt.o : cvt.c $(CONFIG_H) $(CXX_TREE_H) class.h
search.o : search.c $(CONFIG_H) $(CXX_TREE_H) $(srcdir)/../stack.h $(srcdir)/../flags.h
Index: gcc/cp/call.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/call.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 call.c
--- call.c 1997/08/26 00:20:58 1.1.1.1
+++ call.c 1997/08/26 00:23:42
@@ -100,6 +100,7 @@
static tree build_conv PROTO((enum tree_code, tree, tree));
static void print_n_candidates PROTO((struct candidate *, int));
static tree default_parm_conversions PROTO((tree, tree *));
+static int is_subseq PROTO((tree, tree));
#define EVIL_RETURN(ARG) ((ARG).code = EVIL_CODE, (ARG))
#define STD_RETURN(ARG) ((ARG).code = STD_CODE, (ARG))
Index: gcc/cp/cp-tree.h
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/cp-tree.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 cp-tree.h
--- cp-tree.h 1997/08/26 00:20:58 1.1.1.1
+++ cp-tree.h 1997/08/26 00:23:42
@@ -2196,7 +2196,6 @@
extern tree build_throw PROTO((tree));
/* in expr.c */
-/* skip cplus_expand_expr */
extern void init_cplus_expand PROTO((void));
extern void fixup_result_decl PROTO((tree, struct rtx_def *));
extern int extract_init PROTO((tree, tree));
@@ -2281,6 +2280,7 @@
extern void add_defarg_fn PROTO((tree));
extern void do_pending_defargs PROTO((void));
extern int identifier_type PROTO((tree));
+extern void yyhook PROTO((int));
/* in method.c */
extern void init_method PROTO((void));
Index: gcc/cp/decl.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/decl.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 decl.c
--- decl.c 1997/08/26 00:20:58 1.1.1.1
+++ decl.c 1997/08/27 14:52:36
@@ -42,6 +42,12 @@
#include "output.h"
#include "except.h"
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#else
+extern void free PROTO ((void *));
+#endif
+
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free
Index: gcc/cp/decl2.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/decl2.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 decl2.c
--- decl2.c 1997/08/26 00:20:58 1.1.1.1
+++ decl2.c 1997/08/26 00:23:42
@@ -37,8 +37,7 @@
#include "lex.h"
#include "output.h"
#include "except.h"
-
-extern tree get_file_function_name ();
+#include "expr.h"
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
@@ -3004,7 +3003,7 @@
expand_expr (expand_vec_init (decl, TREE_VEC_ELT (init, 0),
TREE_VEC_ELT (init, 1),
TREE_VEC_ELT (init, 2), 0),
- const0_rtx, VOIDmode, 0);
+ const0_rtx, VOIDmode, EXPAND_NORMAL);
}
else
expand_assignment (decl, init, 0, 0);
Index: gcc/cp/expr.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/expr.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 expr.c
--- expr.c 1997/08/26 00:20:58 1.1.1.1
+++ expr.c 1997/08/26 00:23:42
@@ -30,10 +30,12 @@
static tree extract_aggr_init PROTO((tree, tree));
static tree extract_scalar_init PROTO((tree, tree));
+static rtx cplus_expand_expr PROTO((tree, rtx, enum machine_mode,
+ enum expand_modifier));
/* Hook used by expand_expr to expand language-specific tree codes. */
-rtx
+static rtx
cplus_expand_expr (exp, target, tmode, modifier)
tree exp;
rtx target;
Index: gcc/cp/hash.h
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/hash.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 hash.h
--- hash.h 1997/08/26 00:20:58 1.1.1.1
+++ hash.h 1997/08/26 00:23:42
@@ -9,6 +9,9 @@
#define MAX_HASH_VALUE 195
/* maximum key range = 192, duplicates = 0 */
+static unsigned int hash PROTO((char *, unsigned int));
+static struct resword *is_reserved_word PROTO((char *, unsigned int));
+
#ifdef __GNUC__
inline
#endif
@@ -33,7 +36,7 @@
16, 47, 4, 31, 32, 5, 6, 62, 20, 96,
17, 25, 196, 196, 196, 196, 196, 196,
};
- register int hval = len;
+ register unsigned int hval = len;
switch (hval)
{
Index: gcc/cp/init.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/init.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 init.c
--- init.c 1997/08/26 00:20:58 1.1.1.1
+++ init.c 1997/08/26 00:23:42
@@ -29,6 +29,7 @@
#include "flags.h"
#include "output.h"
#include "except.h"
+#include "expr.h"
extern void compiler_error ();
@@ -1433,7 +1434,7 @@
/* Unify the initialization targets. */
DECL_RTL (TREE_OPERAND (init, 0)) = DECL_RTL (exp);
else
- DECL_RTL (TREE_OPERAND (init, 0)) = expand_expr (exp, NULL_RTX, VOIDmode, 0);
+ DECL_RTL (TREE_OPERAND (init, 0)) = expand_expr (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL);
expand_expr_stmt (init);
return;
@@ -1472,7 +1473,7 @@
if (exp == DECL_RESULT (current_function_decl))
DECL_INITIAL (exp) = init;
TREE_SIDE_EFFECTS (init) = 1;
- expand_expr (init, const0_rtx, VOIDmode, 0);
+ expand_expr (init, const0_rtx, VOIDmode, EXPAND_NORMAL);
free_temp_slots ();
return;
}
@@ -2641,7 +2642,7 @@
do_pending_stack_adjust ();
start_sequence_for_rtl_expr (xval);
emit_note (0, -1);
- rtxval = expand_expr (alloc_expr, NULL_RTX, VOIDmode, 0);
+ rtxval = expand_expr (alloc_expr, NULL_RTX, VOIDmode, EXPAND_NORMAL);
do_pending_stack_adjust ();
TREE_SIDE_EFFECTS (xval) = 1;
RTL_EXPR_SEQUENCE (xval) = get_insns ();
@@ -3099,7 +3100,7 @@
(rval,
build_binary_op (MINUS_EXPR, maxindex, iterator, 1),
type);
- expand_expr (e1, const0_rtx, VOIDmode, 0);
+ expand_expr (e1, const0_rtx, VOIDmode, EXPAND_NORMAL);
RTL_EXPR_SEQUENCE (cleanup) = get_insns ();
end_sequence ();
Index: gcc/cp/tree.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/tree.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 tree.c
--- tree.c 1997/08/26 00:20:59 1.1.1.1
+++ tree.c 1997/08/27 14:53:02
@@ -32,6 +32,12 @@
#include <varargs.h>
#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#else
+extern void free PROTO ((void *));
+#endif
+
extern void compiler_error ();
static tree get_identifier_list PROTO((tree));
Index: gcc/cp/typeck.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/cp/typeck.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 typeck.c
--- typeck.c 1997/08/26 00:20:59 1.1.1.1
+++ typeck.c 1997/08/26 00:23:42
@@ -36,6 +36,7 @@
#include "cp-tree.h"
#include "flags.h"
#include "output.h"
+#include "expr.h"
#ifdef HAVE_STRING_H
#include <string.h>
@@ -5620,7 +5621,7 @@
do_pending_stack_adjust ();
start_sequence_for_rtl_expr (xval);
emit_note (0, -1);
- rtxval = expand_expr (t, NULL_RTX, VOIDmode, 0);
+ rtxval = expand_expr (t, NULL_RTX, VOIDmode, EXPAND_NORMAL);
do_pending_stack_adjust ();
TREE_SIDE_EFFECTS (xval) = 1;
RTL_EXPR_SEQUENCE (xval) = get_insns ();
@@ -7094,7 +7095,7 @@
if (o[i] != TREE_VALUE (tail))
{
expand_expr (build_modify_expr (o[i], NOP_EXPR, TREE_VALUE (tail)),
- const0_rtx, VOIDmode, 0);
+ const0_rtx, VOIDmode, EXPAND_NORMAL);
free_temp_slots ();
}
/* Detect modification of read-only values.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~1997-08-27 17:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-08-27 17:31 A new g++ prototype patch H.J. Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).