From 0054a7eaacba2a7183be67b28e7746ed55a8f6d1 Mon Sep 17 00:00:00 2001 From: fche Date: Thu, 3 Mar 2005 21:24:24 +0000 Subject: 2005-03-03 Frank Ch. Eigler * parse.cxx (parse_assignment): Assert lvalueness of left operand. * staptree.h (expression): Add is_lvalue member. * staptree.cxx (functioncall::resolve_types): Don't crash on formal-vs-actual argument count mismatch. (*): Add some is_lvalue stub functions. * testsuite/*: Some new tests. --- staptree.cxx | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'staptree.cxx') diff --git a/staptree.cxx b/staptree.cxx index 34a1d0d3..8a4fc148 100644 --- a/staptree.cxx +++ b/staptree.cxx @@ -753,7 +753,7 @@ functioncall::resolve_types (typeresolution_info& r, exp_type t) // now resolve the function parameters if (args.size() != referent->formal_args.size()) r.unresolved (tok); - for (unsigned i=0; iformal_args[i]->type; @@ -901,3 +901,29 @@ typeresolution_info::resolved (const token* tok, exp_type t) num_newly_resolved ++; // cerr << "resolved " << *tok << " type " << t << endl; } + + +// ------------------------------------------------------------------------ +// semantic processing: lvalue checking + +bool +pre_crement::is_lvalue () +{ + return operand->is_lvalue (); +} + + +bool +post_crement::is_lvalue () +{ + return operand->is_lvalue (); +} + + +bool +assignment::is_lvalue () +{ + return left->is_lvalue (); +} + + -- cgit