diff options
author | Jan Hubicka <jh@suse.cz> | 2009-02-27 20:49:42 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2009-02-27 19:49:42 +0000 |
commit | cff7525fb078f60cffd2050f93eb7a257cf158a4 (patch) | |
tree | 88b2c40a53c2a5175a5910476fd385f50ff0d754 /gcc/tree.h | |
parent | c20993b9959c1586b273eba9c50282a7a56064dd (diff) | |
download | gcc-cff7525fb078f60cffd2050f93eb7a257cf158a4.zip gcc-cff7525fb078f60cffd2050f93eb7a257cf158a4.tar.gz gcc-cff7525fb078f60cffd2050f93eb7a257cf158a4.tar.bz2 |
re PR debug/39267 (gdb testsuite regressions)
PR debug/39267
* tree.h (TREE_PROTECTED): Fix comment.
(BLOCK_HANDLER_BLOCK): Remove.
(struct tree_block): Remove handler_block add body_block.
(inlined_function_outer_scope_p): New.
(is_body_block): Remove.
* dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
* dwarf2out.c (is_inlined_entry_point): Remove.
(add_high_low_attributes): Use inlined_function_outer_scope_p.
(gen_block_die): Use is_inlined_entry_point check; remove body block code.
* langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
* gimplify.c (gimplify_expr): Gimplify body blocks.
* tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper block
with multiple subblocks.
(dump_scope_block): Prettier output; dump more flags and info.
(dump_scope_blocks): New.
(remove_unused_locals): Use dump_scope_blocks.
* tree-flow.h (dump_scope_blocks): Declare.
* tree-cfg.c (execute_build_cfg): Dump scope blocks.
* stmt.c (is_body_block): Remove.
* tree-inline.c (remap_block): Copy BODY_BLOCK info.
* langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
From-SVN: r144474
Diffstat (limited to 'gcc/tree.h')
-rw-r--r-- | gcc/tree.h | 20 |
1 files changed, 10 insertions, 10 deletions
@@ -1324,8 +1324,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, /* Used in classes in C++. */ #define TREE_PRIVATE(NODE) ((NODE)->base.private_flag) -/* Used in classes in C++. - In a BLOCK node, this is BLOCK_HANDLER_BLOCK. */ +/* Used in classes in C++. */ #define TREE_PROTECTED(NODE) ((NODE)->base.protected_flag) /* Nonzero in a _DECL if the use of the name is defined as a @@ -1977,11 +1976,6 @@ struct varray_head_tag; #define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin) #define BLOCK_ABSTRACT(NODE) (BLOCK_CHECK (NODE)->block.abstract_flag) -/* Nonzero means that this block is prepared to handle exceptions - listed in the BLOCK_VARS slot. */ -#define BLOCK_HANDLER_BLOCK(NODE) \ - (BLOCK_CHECK (NODE)->block.handler_block_flag) - /* An index number for this block. These values are not guaranteed to be unique across functions -- whether or not they are depends on the debugging output format in use. */ @@ -2022,9 +2016,8 @@ struct tree_block GTY(()) { struct tree_common common; - unsigned handler_block_flag : 1; unsigned abstract_flag : 1; - unsigned block_num : 30; + unsigned block_num : 31; location_t locus; @@ -4657,6 +4650,14 @@ function_args_iter_next (function_args_iterator *i) i->next = TREE_CHAIN (i->next); } +/* We set BLOCK_SOURCE_LOCATION only to inlined function entry points. */ + +static inline bool +inlined_function_outer_scope_p (const_tree block) +{ + return BLOCK_SOURCE_LOCATION (block) != UNKNOWN_LOCATION; +} + /* Loop over all function arguments of FNTYPE. In each iteration, PTR is set to point to the next tree element. ITER is an instance of function_args_iterator used to iterate the arguments. */ @@ -4710,7 +4711,6 @@ extern void expand_goto (tree); extern rtx expand_stack_save (void); extern void expand_stack_restore (tree); extern void expand_return (tree); -extern int is_body_block (const_tree); /* In tree-eh.c */ extern void using_eh_for_cleanups (void); |