infcall, c++: allow more info to be computed for pass-by-reference values
[deliverable/binutils-gdb.git] / gdb / infcall.c
index 583f0deef0e903536ed03a73f77e0cd97a48e504..f3664d508041496def13634fdc962bf075fc8fcb 100644 (file)
@@ -387,7 +387,7 @@ get_function_name (CORE_ADDR funaddr, char *buf, int buf_size)
     struct symbol *symbol = find_pc_function (funaddr);
 
     if (symbol)
-      return SYMBOL_PRINT_NAME (symbol);
+      return symbol->print_name ();
   }
 
   {
@@ -395,7 +395,7 @@ get_function_name (CORE_ADDR funaddr, char *buf, int buf_size)
     struct bound_minimal_symbol msymbol = lookup_minimal_symbol_by_pc (funaddr);
 
     if (msymbol.minsym)
-      return MSYMBOL_PRINT_NAME (msymbol.minsym);
+      return msymbol.minsym->print_name ();
   }
 
   {
@@ -841,7 +841,7 @@ call_function_by_hand_dummy (struct value *function,
           void parameterless generic dummy frame calls to frameless
           functions will create a sequence of effectively identical
           frames (SP, FP and TOS and PC the same).  This, not
-          suprisingly, results in what appears to be a stack in an
+          surprisingly, results in what appears to be a stack in an
           infinite loop --- when GDB tries to find a generic dummy
           frame on the internal dummy frame stack, it will always
           find the first one.
@@ -1020,7 +1020,8 @@ call_function_by_hand_dummy (struct value *function,
       args[i] = value_arg_coerce (gdbarch, args[i],
                                  param_type, prototyped);
 
-      if (param_type != NULL && language_pass_by_reference (param_type))
+      if (param_type != NULL
+         && !(language_pass_by_reference (param_type).trivially_copyable))
        args[i] = value_addr (args[i]);
     }
 
This page took 0.026131 seconds and 4 git commands to generate.