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
This commit is contained in:
parent
487dcdb055
commit
8e93d44655
4 changed files with 7 additions and 30 deletions
|
@ -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.
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue