From 8e93d44655a8a0cee4a687ac973a54d847e4924b Mon Sep 17 00:00:00 2001 From: Neil Booth Date: Fri, 11 May 2001 06:35:10 +0000 Subject: [PATCH] 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 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/cp-tree.h | 2 -- gcc/cp/parse.y | 4 +--- gcc/cp/semantics.c | 25 ------------------------- 4 files changed, 7 insertions(+), 30 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 37acdde8e69..e80ec37933f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2001-05-11 Neil Booth + + * 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 * splay-tree.h (splay_tree_max): New function. diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index e1b93616aa8..c2ef39110d0 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 22b3e9583a7..70525e00fcb 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 8b7e99bef2c..21290fe6b6d 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