aboutsummaryrefslogtreecommitdiff
path: root/gdb/eval.c
diff options
context:
space:
mode:
authorKen Werner <ken.werner@de.ibm.com>2010-08-11 16:48:26 +0000
committerKen Werner <ken.werner@de.ibm.com>2010-08-11 16:48:26 +0000
commit7346b668d73fe13b9b07b805379ff0e03d3aef5e (patch)
treeeb5fbe1c80b3888b5cff8410b6a7de90699b36f7 /gdb/eval.c
parent3e4c12352587411b09071bd92002d481cebb8f1d (diff)
downloadgdb-7346b668d73fe13b9b07b805379ff0e03d3aef5e.zip
gdb-7346b668d73fe13b9b07b805379ff0e03d3aef5e.tar.gz
gdb-7346b668d73fe13b9b07b805379ff0e03d3aef5e.tar.bz2
gdb/ChangeLog:* gdb/valarith.c (vector_binop): New function.(scalar_binop): Likewise.(value_binop): Call scalar_binop or vector_binop depending on the types.* gdb/eval.c (ptrmath_type_p): Return 0 in case of TYPE_VECTOR.(evaluate_subexp_with_coercion): Add vector check to not convert vectorsto pointers.* gdb/value.c (coerce_array): Add vector check to not coerce vectors.testsuite/ChangeLog:* gdb.base/Makefile.in (EXECUTABLES): Add gnu_vector.* gdb.base/gnu_vector.c: New File.* gdb.base/gnu_vector.exp: Likewise.
Diffstat (limited to 'gdb/eval.c')
-rw-r--r--gdb/eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gdb/eval.c b/gdb/eval.c
index 2694781..635db34 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -736,7 +736,7 @@ ptrmath_type_p (const struct language_defn *lang, struct type *type)
return 1;
case TYPE_CODE_ARRAY:
- return lang->c_style_arrays;
+ return TYPE_VECTOR (type) ? 0 : lang->c_style_arrays;
default:
return 0;
@@ -2956,6 +2956,7 @@ evaluate_subexp_with_coercion (struct expression *exp,
var = exp->elts[pc + 2].symbol;
type = check_typedef (SYMBOL_TYPE (var));
if (TYPE_CODE (type) == TYPE_CODE_ARRAY
+ && !TYPE_VECTOR (type)
&& CAST_IS_CONVERSION (exp->language_defn))
{
(*pos) += 4;