X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Frust-lang.c;h=5099185a0f3d2c965167db67bb7929bc33c13d82;hb=cbe5657196d0d3acbeca39973f93f333ecedacda;hp=152413a612f660d66b5cd54ed5731b714c62f170;hpb=b926417afaea99ed17663e06d6654d0048536017;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 152413a612..5099185a0f 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -918,6 +918,20 @@ rust_internal_print_type (struct type *type, const char *varstring, } break; + case TYPE_CODE_PTR: + { + if (TYPE_NAME (type) != nullptr) + fputs_filtered (TYPE_NAME (type), stream); + else + { + /* We currently can't distinguish between pointers and + references. */ + fputs_filtered ("*mut ", stream); + type_print (TYPE_TARGET_TYPE (type), "", stream, 0); + } + } + break; + default: c_printer: c_print_type (type, varstring, stream, show, level, flags); @@ -1158,7 +1172,7 @@ rust_evaluate_funcall (struct expression *exp, int *pos, enum noside noside) if (noside == EVAL_AVOID_SIDE_EFFECTS) result = value_zero (TYPE_TARGET_TYPE (fn_type), not_lval); else - result = call_function_by_hand (function, NULL, num_args + 1, args.data ()); + result = call_function_by_hand (function, NULL, args); return result; }