Commit d82dd39a by Richard Guenther Committed by Richard Biener

tree.h (build): Remove prototype.

2005-12-02  Richard Guenther  <rguenther@suse.de>

        * tree.h (build): Remove prototype.
        (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
        * tree.c (build): Remove.
        (build0_stat): Update comment.

From-SVN: r107909
parent 6ddd4f62
2005-12-02 Richard Guenther <rguenther@suse.de> 2005-12-02 Richard Guenther <rguenther@suse.de>
* tree.h (build): Remove prototype.
(build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros.
* tree.c (build): Remove.
(build0_stat): Update comment.
2005-12-02 Richard Guenther <rguenther@suse.de>
* tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build. * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build.
* tree-complex.c (update_complex_assignment, expand_complex_div_wide): * tree-complex.c (update_complex_assignment, expand_complex_div_wide):
Likewise. Likewise.
......
...@@ -2691,9 +2691,7 @@ do { tree _node = (NODE); \ ...@@ -2691,9 +2691,7 @@ do { tree _node = (NODE); \
Constants, decls, types and misc nodes cannot be. Constants, decls, types and misc nodes cannot be.
We define 5 non-variadic functions, from 0 to 4 arguments. This is We define 5 non-variadic functions, from 0 to 4 arguments. This is
enough for all extant tree codes. These functions can be called enough for all extant tree codes. */
directly (preferably!), but can also be obtained via GCC preprocessor
magic within the build macro. */
tree tree
build0_stat (enum tree_code code, tree tt MEM_STAT_DECL) build0_stat (enum tree_code code, tree tt MEM_STAT_DECL)
...@@ -2955,61 +2953,6 @@ build7_stat (enum tree_code code, tree tt, tree arg0, tree arg1, ...@@ -2955,61 +2953,6 @@ build7_stat (enum tree_code code, tree tt, tree arg0, tree arg1,
return t; return t;
} }
/* Backup definition for non-gcc build compilers. */
tree
(build) (enum tree_code code, tree tt, ...)
{
tree t, arg0, arg1, arg2, arg3, arg4, arg5, arg6;
int length = TREE_CODE_LENGTH (code);
va_list p;
va_start (p, tt);
switch (length)
{
case 0:
t = build0 (code, tt);
break;
case 1:
arg0 = va_arg (p, tree);
t = build1 (code, tt, arg0);
break;
case 2:
arg0 = va_arg (p, tree);
arg1 = va_arg (p, tree);
t = build2 (code, tt, arg0, arg1);
break;
case 3:
arg0 = va_arg (p, tree);
arg1 = va_arg (p, tree);
arg2 = va_arg (p, tree);
t = build3 (code, tt, arg0, arg1, arg2);
break;
case 4:
arg0 = va_arg (p, tree);
arg1 = va_arg (p, tree);
arg2 = va_arg (p, tree);
arg3 = va_arg (p, tree);
t = build4 (code, tt, arg0, arg1, arg2, arg3);
break;
case 7:
arg0 = va_arg (p, tree);
arg1 = va_arg (p, tree);
arg2 = va_arg (p, tree);
arg3 = va_arg (p, tree);
arg4 = va_arg (p, tree);
arg5 = va_arg (p, tree);
arg6 = va_arg (p, tree);
t = build7 (code, tt, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
break;
default:
gcc_unreachable ();
}
va_end (p);
return t;
}
/* Similar except don't specify the TREE_TYPE /* Similar except don't specify the TREE_TYPE
and leave the TREE_SIDE_EFFECTS as 0. and leave the TREE_SIDE_EFFECTS as 0.
It is permissible for arguments to be null, It is permissible for arguments to be null,
......
...@@ -3137,21 +3137,8 @@ extern tree maybe_get_identifier (const char *); ...@@ -3137,21 +3137,8 @@ extern tree maybe_get_identifier (const char *);
/* Construct various types of nodes. */ /* Construct various types of nodes. */
extern tree build (enum tree_code, tree, ...);
extern tree build_nt (enum tree_code, ...); extern tree build_nt (enum tree_code, ...);
#if GCC_VERSION >= 3000 || __STDC_VERSION__ >= 199901L
/* Use preprocessor trickery to map "build" to "buildN" where N is the
expected number of arguments. This is used for both efficiency (no
varargs), and checking (verifying number of passed arguments). */
#define build(code, ...) \
_buildN1(build, _buildC1(__VA_ARGS__))(code, __VA_ARGS__)
#define _buildN1(BASE, X) _buildN2(BASE, X)
#define _buildN2(BASE, X) BASE##X
#define _buildC1(...) _buildC2(__VA_ARGS__,9,8,7,6,5,4,3,2,1,0,0)
#define _buildC2(x,a1,a2,a3,a4,a5,a6,a7,a8,a9,c,...) c
#endif
extern tree build0_stat (enum tree_code, tree MEM_STAT_DECL); extern tree build0_stat (enum tree_code, tree MEM_STAT_DECL);
#define build0(c,t) build0_stat (c,t MEM_STAT_INFO) #define build0(c,t) build0_stat (c,t MEM_STAT_INFO)
extern tree build1_stat (enum tree_code, tree, tree MEM_STAT_DECL); extern tree build1_stat (enum tree_code, tree, tree MEM_STAT_DECL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment