Index: ada-lang.c =================================================================== RCS file: /cvs/src/src/gdb/ada-lang.c,v retrieving revision 1.112 diff -u -p -r1.112 ada-lang.c --- ada-lang.c 24 Dec 2007 16:52:24 -0000 1.112 +++ ada-lang.c 28 Dec 2007 06:09:19 -0000 @@ -8151,6 +8151,24 @@ ada_evaluate_subexp (struct type *expect else return value_neg (arg1); + case BINOP_LOGICAL_AND: + case BINOP_LOGICAL_OR: + case UNOP_LOGICAL_NOT: + *pos -= 1; + return value_cast (LA_BOOL_TYPE, + evaluate_subexp_standard (expect_type, exp, + pos, noside)); + + case BINOP_BITWISE_AND: + case BINOP_BITWISE_IOR: + case BINOP_BITWISE_XOR: + arg1 = evaluate_subexp (NULL_TYPE, exp, pos, EVAL_AVOID_SIDE_EFFECTS); + *pos = pc; + return value_cast (value_type (arg1), + evaluate_subexp_standard (expect_type, exp, + pos, noside)); + + case OP_VAR_VALUE: *pos -= 1; if (noside == EVAL_SKIP) Index: language.c =================================================================== RCS file: /cvs/src/src/gdb/language.c,v retrieving revision 1.70 diff -u -p -r1.70 language.c --- language.c 4 Dec 2007 23:33:00 -0000 1.70 +++ language.c 28 Dec 2007 06:09:19 -0000 @@ -801,6 +801,7 @@ lang_bool_type (void) return builtin_type_f_logical_s2; case language_cplus: case language_pascal: + case language_ada: if (current_language->la_language==language_cplus) {sym = lookup_symbol ("bool", NULL, VAR_DOMAIN, NULL, NULL);} else @@ -821,6 +822,7 @@ lang_bool_type (void) return type; } return java_boolean_type; + default: return builtin_type_int; }