mirror of git://gcc.gnu.org/git/gcc.git
langhooks.h (lang_hooks_for_types): Change global_bindings_p's return type to bool and adjust comment.
2011-05-07 Eric Botcazou <ebotcazou@adacore.com> * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return type to bool and adjust comment. * fold-const.c (fold_range_test): Adjust call to global_bindings_p. (fold_mathfn_compare): Remove calls to global_bindings_p. (fold_inf_compare): Likewise. * stor-layout.c (variable_size): Adjust call to global_bindings_p. * c-tree.h (global_bindings_p): Adjust prototype. * c-decl.c (global_bindings_p): Return bool and simplify. ada/ * gcc-interface/gigi.h (global_bindings_p): Adjust prototype. * gcc-interface/utils.c (global_bindings_p): Return bool and simplify. cp/ * name-lookup.h (global_bindings_p): Adjust prototype. * name-lookup.c (global_bindings_p): Return bool. fortran/ * f95-lang.c (global_bindings_p): Return bool and simplify. go/ * go-lang.c (global_bindings_p): Return bool and simplify. java/ * java-tree.h (global_bindings_p): Adjust prototype. * decl.c (global_bindings_p): Return bool. lto/ * lto-lang.c (global_bindings_p): Return bool. From-SVN: r173535
This commit is contained in:
parent
1400c8e501
commit
c99c002630
|
@ -1,3 +1,14 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
|
||||
type to bool and adjust comment.
|
||||
* fold-const.c (fold_range_test): Adjust call to global_bindings_p.
|
||||
(fold_mathfn_compare): Remove calls to global_bindings_p.
|
||||
(fold_inf_compare): Likewise.
|
||||
* stor-layout.c (variable_size): Adjust call to global_bindings_p.
|
||||
* c-tree.h (global_bindings_p): Adjust prototype.
|
||||
* c-decl.c (global_bindings_p): Return bool and simplify.
|
||||
|
||||
2011-05-07 Zdenek Dvorak <ook@ucw.cz>
|
||||
|
||||
PR tree-optimization/48837
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
|
||||
* gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
|
||||
|
||||
2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* gcc-interface/trans.c (Case_Statement_to_gnu): Call
|
||||
build_case_label.
|
||||
* gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
|
||||
|
||||
2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
|
|
|
@ -422,8 +422,8 @@ extern GTY(()) tree gnat_raise_decls_ext[(int) LAST_REASON_CODE + 1];
|
|||
/* Routines expected by the gcc back-end. They must have exactly the same
|
||||
prototype and names as below. */
|
||||
|
||||
/* Returns nonzero if we are currently in the global binding level. */
|
||||
extern int global_bindings_p (void);
|
||||
/* Return true if we are in the global binding level. */
|
||||
extern bool global_bindings_p (void);
|
||||
|
||||
/* Enter and exit a new binding level. */
|
||||
extern void gnat_pushlevel (void);
|
||||
|
|
|
@ -365,12 +365,12 @@ build_dummy_unc_pointer_types (Entity_Id gnat_desig_type, tree gnu_desig_type)
|
|||
TYPE_OBJECT_RECORD_TYPE (gnu_desig_type) = gnu_object_type;
|
||||
}
|
||||
|
||||
/* Return nonzero if we are currently in the global binding level. */
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
int
|
||||
bool
|
||||
global_bindings_p (void)
|
||||
{
|
||||
return ((force_global || !current_function_decl) ? -1 : 0);
|
||||
return force_global || current_function_decl == NULL_TREE;
|
||||
}
|
||||
|
||||
/* Enter a new binding level. */
|
||||
|
|
|
@ -845,14 +845,12 @@ objc_mark_locals_volatile (void *enclosing_blk)
|
|||
}
|
||||
}
|
||||
|
||||
/* Nonzero if we are currently in file scope. */
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
int
|
||||
bool
|
||||
global_bindings_p (void)
|
||||
{
|
||||
return (current_scope == file_scope && !c_override_global_bindings_to_false
|
||||
? -1
|
||||
: 0);
|
||||
return current_scope == file_scope && !c_override_global_bindings_to_false;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -413,7 +413,7 @@ extern struct obstack parser_obstack;
|
|||
extern tree c_break_label;
|
||||
extern tree c_cont_label;
|
||||
|
||||
extern int global_bindings_p (void);
|
||||
extern bool global_bindings_p (void);
|
||||
extern void push_scope (void);
|
||||
extern tree pop_scope (void);
|
||||
extern void c_bindings_start_stmt_expr (struct c_spot_bindings *);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* name-lookup.h (global_bindings_p): Adjust prototype.
|
||||
* name-lookup.c (global_bindings_p): Return bool.
|
||||
|
||||
2011-05-06 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* decl.c (stabilize_save_expr_r): Set *walk_subtrees as
|
||||
|
|
|
@ -1576,9 +1576,9 @@ maybe_push_cleanup_level (tree type)
|
|||
}
|
||||
}
|
||||
|
||||
/* Nonzero if we are currently in the global binding level. */
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
int
|
||||
bool
|
||||
global_bindings_p (void)
|
||||
{
|
||||
return global_scope_p (current_binding_level);
|
||||
|
|
|
@ -290,7 +290,7 @@ extern GTY(()) tree global_type_node;
|
|||
|
||||
extern cxx_scope *leave_scope (void);
|
||||
extern bool kept_level_p (void);
|
||||
extern int global_bindings_p (void);
|
||||
extern bool global_bindings_p (void);
|
||||
extern bool toplevel_bindings_p (void);
|
||||
extern bool namespace_bindings_p (void);
|
||||
extern bool template_parm_scope_p (void);
|
||||
|
|
|
@ -4849,8 +4849,8 @@ fold_range_test (location_t loc, enum tree_code code, tree type,
|
|||
? TRUTH_AND_EXPR : TRUTH_OR_EXPR,
|
||||
type, op0, op1);
|
||||
|
||||
else if (lang_hooks.decls.global_bindings_p () == 0
|
||||
&& ! CONTAINS_PLACEHOLDER_P (lhs))
|
||||
else if (!lang_hooks.decls.global_bindings_p ()
|
||||
&& !CONTAINS_PLACEHOLDER_P (lhs))
|
||||
{
|
||||
tree common = save_expr (lhs);
|
||||
|
||||
|
@ -6148,10 +6148,6 @@ fold_mathfn_compare (location_t loc,
|
|||
build_real (TREE_TYPE (arg), dconst0));
|
||||
|
||||
/* sqrt(x) < y is x >= 0 && x != +Inf, when y is large. */
|
||||
if (lang_hooks.decls.global_bindings_p () != 0
|
||||
|| CONTAINS_PLACEHOLDER_P (arg))
|
||||
return NULL_TREE;
|
||||
|
||||
arg = save_expr (arg);
|
||||
return fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type,
|
||||
fold_build2_loc (loc, GE_EXPR, type, arg,
|
||||
|
@ -6168,18 +6164,14 @@ fold_mathfn_compare (location_t loc,
|
|||
build_real (TREE_TYPE (arg), c2));
|
||||
|
||||
/* sqrt(x) < c is the same as x >= 0 && x < c*c. */
|
||||
if (lang_hooks.decls.global_bindings_p () == 0
|
||||
&& ! CONTAINS_PLACEHOLDER_P (arg))
|
||||
{
|
||||
arg = save_expr (arg);
|
||||
return fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type,
|
||||
arg = save_expr (arg);
|
||||
return fold_build2_loc (loc, TRUTH_ANDIF_EXPR, type,
|
||||
fold_build2_loc (loc, GE_EXPR, type, arg,
|
||||
build_real (TREE_TYPE (arg),
|
||||
dconst0)),
|
||||
fold_build2_loc (loc, code, type, arg,
|
||||
build_real (TREE_TYPE (arg),
|
||||
c2)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -6226,13 +6218,8 @@ fold_inf_compare (location_t loc, enum tree_code code, tree type,
|
|||
return omit_one_operand_loc (loc, type, integer_one_node, arg0);
|
||||
|
||||
/* x <= +Inf is the same as x == x, i.e. isfinite(x). */
|
||||
if (lang_hooks.decls.global_bindings_p () == 0
|
||||
&& ! CONTAINS_PLACEHOLDER_P (arg0))
|
||||
{
|
||||
arg0 = save_expr (arg0);
|
||||
return fold_build2_loc (loc, EQ_EXPR, type, arg0, arg0);
|
||||
}
|
||||
break;
|
||||
arg0 = save_expr (arg0);
|
||||
return fold_build2_loc (loc, EQ_EXPR, type, arg0, arg0);
|
||||
|
||||
case EQ_EXPR:
|
||||
case GE_EXPR:
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* f95-lang.c (global_bindings_p): Return bool and simplify.
|
||||
|
||||
2011-05-07 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/18918
|
||||
|
|
|
@ -91,7 +91,7 @@ static void gfc_finish (void);
|
|||
static void gfc_write_global_declarations (void);
|
||||
static void gfc_print_identifier (FILE *, tree, int);
|
||||
void do_function_end (void);
|
||||
int global_bindings_p (void);
|
||||
bool global_bindings_p (void);
|
||||
static void clear_binding_stack (void);
|
||||
static void gfc_be_parse_file (void);
|
||||
static alias_set_type gfc_get_alias_set (tree);
|
||||
|
@ -373,12 +373,12 @@ static GTY(()) struct binding_level *global_binding_level;
|
|||
static struct binding_level clear_binding_level = { NULL, NULL, NULL };
|
||||
|
||||
|
||||
/* Return nonzero if we are currently in the global binding level. */
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
int
|
||||
bool
|
||||
global_bindings_p (void)
|
||||
{
|
||||
return current_binding_level == global_binding_level ? -1 : 0;
|
||||
return current_binding_level == global_binding_level;
|
||||
}
|
||||
|
||||
tree
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* go-lang.c (global_bindings_p): Return bool and simplify.
|
||||
|
||||
2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* go-gcc.cc (Gcc_backend::switch_statement): Call build_case_label.
|
||||
|
|
|
@ -308,10 +308,12 @@ go_langhook_builtin_function (tree decl)
|
|||
return decl;
|
||||
}
|
||||
|
||||
static int
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
static bool
|
||||
go_langhook_global_bindings_p (void)
|
||||
{
|
||||
return current_function_decl == NULL ? 1 : 0;
|
||||
return current_function_decl == NULL_TREE;
|
||||
}
|
||||
|
||||
/* Push a declaration into the current binding level. We can't
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* java-tree.h (global_bindings_p): Adjust prototype.
|
||||
* decl.c (global_bindings_p): Return bool.
|
||||
|
||||
2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* expr.c (expand_java_switch): Call build_case_label.
|
||||
|
|
|
@ -1302,9 +1302,9 @@ pushdecl_function_level (tree x)
|
|||
return t;
|
||||
}
|
||||
|
||||
/* Nonzero if we are currently in the global binding level. */
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
int
|
||||
bool
|
||||
global_bindings_p (void)
|
||||
{
|
||||
return current_binding_level == global_binding_level;
|
||||
|
|
|
@ -983,7 +983,7 @@ extern tree ident_subst (const char *, int, const char *, int, int,
|
|||
const char *);
|
||||
extern tree identifier_subst (const tree, const char *, int, int,
|
||||
const char *);
|
||||
extern int global_bindings_p (void);
|
||||
extern bool global_bindings_p (void);
|
||||
extern tree getdecls (void);
|
||||
extern void pushlevel (int);
|
||||
extern tree poplevel (int,int, int);
|
||||
|
|
|
@ -148,9 +148,10 @@ struct lang_hooks_for_types
|
|||
|
||||
struct lang_hooks_for_decls
|
||||
{
|
||||
/* Returns nonzero if we are in the global binding level. Ada
|
||||
returns -1 for an undocumented reason used in stor-layout.c. */
|
||||
int (*global_bindings_p) (void);
|
||||
/* Return true if we are in the global binding level. This hook is really
|
||||
needed only if the language supports variable-sized types at the global
|
||||
level, i.e. declared outside subprograms. */
|
||||
bool (*global_bindings_p) (void);
|
||||
|
||||
/* Function to add a decl to the current scope level. Takes one
|
||||
argument, a decl to add. Returns that decl, or, if the same
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* lto-lang.c (global_bindings_p): Return bool.
|
||||
|
||||
2011-05-07 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* lto.c (lto_materialize_function): Use cgraph_function_with_gimple_body_p.
|
||||
|
|
|
@ -938,8 +938,10 @@ lto_type_for_mode (enum machine_mode mode, int unsigned_p)
|
|||
return NULL_TREE;
|
||||
}
|
||||
|
||||
static int
|
||||
lto_global_bindings_p (void)
|
||||
/* Return true if we are in the global binding level. */
|
||||
|
||||
static bool
|
||||
lto_global_bindings_p (void)
|
||||
{
|
||||
return cfun == NULL;
|
||||
}
|
||||
|
|
|
@ -89,10 +89,10 @@ variable_size (tree size)
|
|||
if (CONTAINS_PLACEHOLDER_P (size))
|
||||
return self_referential_size (size);
|
||||
|
||||
/* If the language-processor is to take responsibility for variable-sized
|
||||
items (e.g., languages which have elaboration procedures like Ada),
|
||||
just return SIZE unchanged. */
|
||||
if (lang_hooks.decls.global_bindings_p () < 0)
|
||||
/* If we are in the global binding level, we can't make a SAVE_EXPR
|
||||
since it may end up being shared across functions, so it is up
|
||||
to the front-end to deal with this case. */
|
||||
if (lang_hooks.decls.global_bindings_p ())
|
||||
return size;
|
||||
|
||||
return save_expr (size);
|
||||
|
|
Loading…
Reference in New Issue