diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2001-05-11 06:35:10 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2001-05-11 06:35:10 +0000 |
commit | 8e93d44655a8a0cee4a687ac973a54d847e4924b (patch) | |
tree | b3e6d409ceaedc5860583b41d8fdd1da198868d9 /gcc | |
parent | 487dcdb055f2cfaab30e02bc0981eeade3d193d7 (diff) | |
download | gcc-8e93d44655a8a0cee4a687ac973a54d847e4924b.zip gcc-8e93d44655a8a0cee4a687ac973a54d847e4924b.tar.gz gcc-8e93d44655a8a0cee4a687ac973a54d847e4924b.tar.bz2 |
cp-tree.h (finish_label_expr, [...]): Delete.
* cp-tree.h (finish_label_expr, lookup_label): Delete.
* parse.y: Update for '&&'; don't issue warning here.
* semantics.c (finish_label_expr): Delete.
From-SVN: r41958
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/cp-tree.h | 2 | ||||
-rw-r--r-- | gcc/cp/parse.y | 4 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 25 |
4 files changed, 7 insertions, 30 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 37acdde..e80ec37 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> + + * cp-tree.h (finish_label_expr, lookup_label): Delete. + * parse.y: Update for '&&'; don't issue warning here. + * semantics.c (finish_label_expr): Delete. + 2001-05-07 Mark Mitchell <mark@codesourcery.com> * splay-tree.h (splay_tree_max): New function. diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index e1b9361..c2ef391 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -3791,7 +3791,6 @@ extern tree push_using_decl PARAMS ((tree, tree)); extern tree push_using_directive PARAMS ((tree)); extern void push_class_level_binding PARAMS ((tree, tree)); extern tree implicitly_declare PARAMS ((tree)); -extern tree lookup_label PARAMS ((tree)); extern tree declare_local_label PARAMS ((tree)); extern tree define_label PARAMS ((const char *, int, tree)); extern void check_goto PARAMS ((tree)); @@ -4269,7 +4268,6 @@ extern tree finish_object_call_expr PARAMS ((tree, tree, tree)); extern tree finish_qualified_object_call_expr PARAMS ((tree, tree, tree)); extern tree finish_pseudo_destructor_call_expr PARAMS ((tree, tree, tree)); extern tree finish_qualified_call_expr PARAMS ((tree, tree)); -extern tree finish_label_address_expr PARAMS ((tree)); extern tree finish_unary_op_expr PARAMS ((enum tree_code, tree)); extern tree finish_id_expr PARAMS ((tree)); extern void save_type_access_control PARAMS ((tree)); diff --git a/gcc/cp/parse.y b/gcc/cp/parse.y index 22b3e95..70525e0 100644 --- a/gcc/cp/parse.y +++ b/gcc/cp/parse.y @@ -1224,9 +1224,7 @@ unary_expr: { $$ = finish_unary_op_expr ($1, $2); } /* Refer to the address of a label as a pointer. */ | ANDAND identifier - { if (pedantic) - pedwarn ("ISO C++ forbids `&&'"); - $$ = finish_label_address_expr ($2); } + { $$ = finish_label_address_expr ($2); } | SIZEOF unary_expr %prec UNARY { $$ = expr_sizeof ($2); } | SIZEOF '(' type_id ')' %prec HYPERUNARY diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 8b7e99b..21290fe 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -1491,31 +1491,6 @@ finish_qualified_call_expr (fn, args) args); } -/* Finish an expression taking the address of LABEL. Returns an - expression for the address. */ - -tree -finish_label_address_expr (label) - tree label; -{ - tree result; - - label = lookup_label (label); - if (label == NULL_TREE) - result = null_pointer_node; - else - { - TREE_USED (label) = 1; - result = build1 (ADDR_EXPR, ptr_type_node, label); - TREE_CONSTANT (result) = 1; - /* This function cannot be inlined. All jumps to the addressed - label should wind up at the same point. */ - DECL_UNINLINABLE (current_function_decl) = 1; - } - - return result; -} - /* Finish an expression of the form CODE EXPR. */ tree |