diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-08-12 01:45:44 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-08-12 01:45:44 +0000 |
commit | f01b0acb0f151a573750a3401ccd14f11b982263 (patch) | |
tree | 3a494497f77567908eafc145060dd40eb99b735e /gcc/cp/semantics.c | |
parent | cf7cf3d23e8b3d6ffb7a541e5942f205c6e43a90 (diff) | |
download | gcc-f01b0acb0f151a573750a3401ccd14f11b982263.zip gcc-f01b0acb0f151a573750a3401ccd14f11b982263.tar.gz gcc-f01b0acb0f151a573750a3401ccd14f11b982263.tar.bz2 |
cp-tree.h (minimal_parse_mode): Remove.
* cp-tree.h (minimal_parse_mode): Remove.
(finish_label_stmt): New function.
* decl.c (saved_scope): Remove minimal parse mode.
(maybe_push_to_top_level): Don't save it.
(pop_from_top_level): Don't restore it.
(define_label): Split out template-handling code to semantics.c.
(start_decl): Don't use minimal_parse_mode.
(cp_finish_decl): Likewise.
(start_function): Don't increment it.
(store_return_init): Don't use it.
(finish_function): Don't decrement it.
* parse.y (label_colon): Use finish_label_stmt throughout.
* parse.c: Regenerated.
* pt.c (minimal_parse_mode): Don't define it.
(tsubst_expr): Use finish_label_stmt.
* semantics.c (finish_label_stmt): New function.
From-SVN: r28682
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r-- | gcc/cp/semantics.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 1b64900..f464c33 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -832,6 +832,32 @@ finish_asm_stmt (cv_qualifier, string, output_operands, } } +/* Finish a label with the indicated NAME. */ + +void +finish_label_stmt (name) + tree name; +{ + tree decl; + + if (processing_template_decl) + { + push_obstacks_nochange (); + end_temporary_allocation (); + decl = build_decl (LABEL_DECL, name, void_type_node); + pop_obstacks (); + DECL_SOURCE_LINE (decl) = lineno; + DECL_SOURCE_FILE (decl) = input_filename; + add_tree (decl); + } + else + { + decl = define_label (input_filename, lineno, name); + if (decl) + expand_label (decl); + } +} + /* Finish a parenthesized expression EXPR. */ tree |