summaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-11 01:36:50 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2006-04-11 01:36:50 +0000
commitf6e5971197e69aa040ca3ad0dc9e580bf3dcbb89 (patch)
tree7d93c2f41a91db2797e82ea2593a73f5c5b9cda7 /gcc/c-parser.c
parent339ccd69236f64f3012c4ca7e7e64819bf7a9459 (diff)
downloadgcc-f6e5971197e69aa040ca3ad0dc9e580bf3dcbb89.tar.gz
PR/21391
* testsuite/gcc.dg/20060410.c: New. * dwarf2out.c (struct die_struct): Add die_perennial_p field. (premark_used_types_helper): New. (premark_used_types): New. (gen_subprogram_die): Call premark_used_types. (prune_unused_types_walk): Do not prune perennial dies. * function.c (used_types_insert): New. * function.h (struct function): Add used_types_hash field. (used_types_insert): Add prototype. * Makefile.in (FUNCTION_H): Depend on HASHTAB_H. * c-parser.c (c_parser_cast_expression): Save casted types in used types hash table. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112845 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r--gcc/c-parser.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index b5722738ac9..0c90fa84bd8 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -4660,6 +4660,11 @@ c_parser_cast_expression (c_parser *parser, struct c_expr *after)
ret.original_code = ERROR_MARK;
return ret;
}
+
+ /* Save casted types in the function's used types hash table. */
+ if (debug_info_level > DINFO_LEVEL_NONE)
+ used_types_insert (type_name->specs->type, cfun);
+
if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
return c_parser_postfix_expression_after_paren_type (parser,
type_name);