diff options
author | brolley <brolley> | 2008-02-27 16:42:35 +0000 |
---|---|---|
committer | brolley <brolley> | 2008-02-27 16:42:35 +0000 |
commit | 34201621cc07339371c8d74ce0fe609d967771d4 (patch) | |
tree | f2122e04569f569d2ff848435af6c2f343a2ac63 /elaborate.h | |
parent | 67bae0e3d979d554acaeb2a09cf4f7463ee713da (diff) | |
download | systemtap-steved-34201621cc07339371c8d74ce0fe609d967771d4.tar.gz systemtap-steved-34201621cc07339371c8d74ce0fe609d967771d4.tar.xz systemtap-steved-34201621cc07339371c8d74ce0fe609d967771d4.zip |
2008-02-21 Dave Brolley <brolley@redhat.com>
PR5189
* staptree.h (print_format::conv_memory): New enumerator.
(print_format::width_type): New enumeration.
(print_format::precision_type): New enumeration.
(format_component::widthtype): New member.
(format_component::prectype): New member.
(format_component::is_empty): Test widthtype and prectype.
(format_component::clear): Clear widthtype and prectype.
* staptree.cxx (print_format::components_to_string): Handle dynamic width and precision.
Handle conv_memory.
(print_format::string_to_components): Parse dynamic width and precision specifiers.
Set widthtype and prectype. Parse %m format specifier.
* elaborate.h (typeresolution_info::check_arg_type): New method.
* elaborate.cxx (typeresolution_info::visit_print_format): Account for dynamic width
and precision when computing the expected number of arguments. Check the types of
arguments for dynamic width and precision. Use check_arg_type to check the types of
all arguments. Handle print_format::conv_memory.
(typeresolution_info::check_arg_type): New method.
* NEWS: Describe the enhancements above.
Diffstat (limited to 'elaborate.h')
-rw-r--r-- | elaborate.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/elaborate.h b/elaborate.h index 607f8689..fc8fbbcb 100644 --- a/elaborate.h +++ b/elaborate.h @@ -54,6 +54,7 @@ struct typeresolution_info: public visitor functiondecl* current_function; derived_probe* current_probe; + void check_arg_type (exp_type wanted, expression* arg); void mismatch (const token* tok, exp_type t1, exp_type t2); void unresolved (const token* tok); void resolved (const token* tok, exp_type t); |