diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2008-09-11 14:09:37 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2008-09-11 14:09:37 +0000 |
commit | 3e79cecf024acb3f5739ec19d6ebd331f08e80e8 (patch) | |
tree | f855bd65ee65c9033bc200b59db309096c775ea3 /gdb/ada-lex.l | |
parent | c841afd52aeb4292e2d9b294b78b71f7bc14313a (diff) | |
download | gdb-3e79cecf024acb3f5739ec19d6ebd331f08e80e8.zip gdb-3e79cecf024acb3f5739ec19d6ebd331f08e80e8.tar.gz gdb-3e79cecf024acb3f5739ec19d6ebd331f08e80e8.tar.bz2 |
* expression.h (struct expression): New member GDBARCH.
* parse.c (parse_exp_in_context): Initialize it.
* parser-def.h (parse_gdbarch, parse_language): New macros.
* ada-exp.y (parse_type): New macro.
Replace builtin_type_ macros by using parse_type.
Replace current_language by parse_language.
* ada-lex.l (processInt): Replace current_gdbarch by parse_gdbarch.
Replace builtin_type_ macros.
* c-exp.y (parse_type): New macro.
Replace builtin_type_ macros by using parse_type.
(parse_number): Replace current_gdbarch by parse_gdbarch.
(yylex): Replace current_language by parse_language.
* f-exp.y (parse_type, parse_f_type): New macros.
Replace builtin_type_ macros by using parse_{f_,}type.
(parse_number): Replace current_gdbarch by parse_gdbarch.
(yylex): Replace current_language by parse_language.
* jv-exp.y (parse_type): New macro.
(parse_number): Replace builtin_type_ macros by using parse_type.
* m2-exp.y (parse_type, parse_m2_type): New macros.
Replace builtin_type_ macros by using parse_{m2_,}type.
* objc-exp.y (parse_type): New macro.
Replace builtin_type_ macros by using parse_type.
(parse_number): Replace current_gdbarch by parse_gdbarch.
(yylex): Replace current_language by parse_language.
* p-exp.y (parse_type): New macro.
Replace builtin_type_ macros by using parse_type.
(parse_number): Replace current_gdbarch by parse_gdbarch.
(yylex): Replace current_language by parse_language.
Diffstat (limited to 'gdb/ada-lex.l')
-rw-r--r-- | gdb/ada-lex.l | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l index e4713a2..5443130 100644 --- a/gdb/ada-lex.l +++ b/gdb/ada-lex.l @@ -351,11 +351,11 @@ processInt (const char *base0, const char *num0, const char *exp0) exp -= 1; } - if ((result >> (gdbarch_int_bit (current_gdbarch)-1)) == 0) + if ((result >> (gdbarch_int_bit (parse_gdbarch)-1)) == 0) yylval.typed_val.type = type_int (); - else if ((result >> (gdbarch_long_bit (current_gdbarch)-1)) == 0) + else if ((result >> (gdbarch_long_bit (parse_gdbarch)-1)) == 0) yylval.typed_val.type = type_long (); - else if (((result >> (gdbarch_long_bit (current_gdbarch)-1)) >> 1) == 0) + else if (((result >> (gdbarch_long_bit (parse_gdbarch)-1)) >> 1) == 0) { /* We have a number representable as an unsigned integer quantity. For consistency with the C treatment, we will treat it as an @@ -364,7 +364,8 @@ processInt (const char *base0, const char *num0, const char *exp0) for the mess, but C doesn't officially guarantee that a simple assignment does the trick (no, it doesn't; read the reference manual). */ - yylval.typed_val.type = builtin_type_unsigned_long; + yylval.typed_val.type + = builtin_type (parse_gdbarch)->builtin_unsigned_long; if (result & LONGEST_SIGN) yylval.typed_val.val = (LONGEST) (result & ~LONGEST_SIGN) @@ -386,10 +387,10 @@ processReal (const char *num0) sscanf (num0, "%" DOUBLEST_SCAN_FORMAT, &yylval.typed_val_float.dval); yylval.typed_val_float.type = type_float (); - if (sizeof(DOUBLEST) >= gdbarch_double_bit (current_gdbarch) + if (sizeof(DOUBLEST) >= gdbarch_double_bit (parse_gdbarch) / TARGET_CHAR_BIT) yylval.typed_val_float.type = type_double (); - if (sizeof(DOUBLEST) >= gdbarch_long_double_bit (current_gdbarch) + if (sizeof(DOUBLEST) >= gdbarch_long_double_bit (parse_gdbarch) / TARGET_CHAR_BIT) yylval.typed_val_float.type = type_long_double (); |