diff options
Diffstat (limited to 'gcc/cp/call.c')
-rw-r--r-- | gcc/cp/call.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/cp/call.c b/gcc/cp/call.c index be7cf3c..3079d14 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -593,6 +593,15 @@ can_convert (to, from) return h.code < USER_CODE; } +int +can_convert_arg (to, from, arg) + tree to, from, arg; +{ + struct harshness_code h; + h = convert_harshness (to, from, arg); + return h.code < USER_CODE; +} + #ifdef DEBUG_MATCHING static char * print_harshness (h) @@ -2371,9 +2380,12 @@ build_method_call (instance, name, parms, basetype_path, flags) assemble_external (function); #if 0 + /* Is it a synthesized method that needs to be synthesized? */ if (DECL_ARTIFICIAL (function) && ! flag_no_inline && DECL_SAVED_INSNS (function) == 0 - && ! TREE_ASM_WRITTEN (function)) + && ! TREE_ASM_WRITTEN (function) + /* Kludge: don't synthesize for default args. */ + && current_function_decl) synthesize_method (function); #endif |