summaryrefslogtreecommitdiff
path: root/gdb/valarith.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-02-18 19:10:44 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-02-18 19:10:44 +0000
commit5a9b0f85beaea772578661c6ce9f4b9684ad303f (patch)
tree9f129180872225351be8f56cbef59c0a3a463071 /gdb/valarith.c
parenteaad3106d6f1785d4dbf13d6b0b265a8c79a7a8c (diff)
downloadgdb-5a9b0f85beaea772578661c6ce9f4b9684ad303f.tar.gz
gdb/
* cp-support.c (make_symbol_overload_list_namespace): Do not call make_symbol_overload_list_block with NULL BLOCK. * valarith.c (unop_user_defined_p): Resolve also TYPE_CODE_TYPEDEF. gdb/testsuite/ * gdb.cp/typedef-operator.exp: New file. * gdb.cp/typedef-operator.cc: New file.
Diffstat (limited to 'gdb/valarith.c')
-rw-r--r--gdb/valarith.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/gdb/valarith.c b/gdb/valarith.c
index 787fc69390c..68f649f3c07 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -315,15 +315,9 @@ unop_user_defined_p (enum exp_opcode op, struct value *arg1)
if (op == UNOP_ADDR)
return 0;
type1 = check_typedef (value_type (arg1));
- for (;;)
- {
- if (TYPE_CODE (type1) == TYPE_CODE_STRUCT)
- return 1;
- else if (TYPE_CODE (type1) == TYPE_CODE_REF)
- type1 = TYPE_TARGET_TYPE (type1);
- else
- return 0;
- }
+ if (TYPE_CODE (type1) == TYPE_CODE_REF)
+ type1 = check_typedef (TYPE_TARGET_TYPE (type1));
+ return TYPE_CODE (type1) == TYPE_CODE_STRUCT;
}
/* Try to find an operator named OPERATOR which takes NARGS arguments