From 319660888893154e17ebbe313501ede739a92dcd Mon Sep 17 00:00:00 2001 From: fche Date: Wed, 10 Aug 2005 23:11:15 +0000 Subject: 2005-08-10 Frank Ch. Eigler PR translator/1186 * elaborate.cxx (resolve_2types): Accept a flag to tolerate unresolved expression types. (visit_functioncall): Call it thusly. * translate.cxx (emit_function): Tolerate void functions. * stap.1.in: Document possibility of void functions. * tapset/builtin_{log,printk,warn}.stp: Make these void functions. * testsuite/buildok/nine.stp, semok/eighteen.stp: New tests. --- elaborate.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'elaborate.cxx') diff --git a/elaborate.cxx b/elaborate.cxx index 0cecab7e..de39b496 100644 --- a/elaborate.cxx +++ b/elaborate.cxx @@ -1252,7 +1252,7 @@ typeresolution_info::visit_ternary_expression (ternary_expression* e) template void resolve_2types (Referrer* referrer, Referent* referent, - typeresolution_info* r, exp_type t) + typeresolution_info* r, exp_type t, bool accept_unknown = false) { exp_type& re_type = referrer->type; const token* re_tok = referrer->tok; @@ -1290,7 +1290,7 @@ void resolve_2types (Referrer* referrer, Referent* referent, r->resolved (te_tok, te_type); // catch re_type/t mismatch later } - else + else if (! accept_unknown) r->unresolved (re_tok); } @@ -1361,7 +1361,7 @@ typeresolution_info::visit_functioncall (functioncall* e) { assert (e->referent != 0); - resolve_2types (e, e->referent, this, t); + resolve_2types (e, e->referent, this, t, true); // accept unknown type if (e->type == pe_stats) invalid (e->tok, e->type); -- cgit