diff options
author | Jürg Billeter <j@bitron.ch> | 2016-11-01 18:03:17 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2016-11-03 20:47:31 +0100 |
commit | b905023ff33eb220f86a5a754a8828d89931517a (patch) | |
tree | 7109e289dd2cee384504a2a934a50126f0b65823 | |
parent | 300f81c2517d875b5e1331d893d42f3901e4563e (diff) | |
download | vala-b905023ff33eb220f86a5a754a8828d89931517a.tar.gz |
codegen: Avoid temporary variables for calls to [FormatArg] methods
This prevents bogus C compiler warnings with -Wformat-nonliteral.
https://bugzilla.gnome.org/show_bug.cgi?id=769229
-rw-r--r-- | codegen/valaccodemethodcallmodule.vala | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/codegen/valaccodemethodcallmodule.vala b/codegen/valaccodemethodcallmodule.vala index 2cd12b69f..7786d1bf9 100644 --- a/codegen/valaccodemethodcallmodule.vala +++ b/codegen/valaccodemethodcallmodule.vala @@ -787,7 +787,9 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { } } - if (!return_result_via_out_param) { + if (m != null && m.get_format_arg_index () >= 0) { + set_cvalue (expr, ccall_expr); + } else if (!return_result_via_out_param) { var temp_var = get_temp_variable (result_type, result_type.value_owned); var temp_ref = get_variable_cexpression (temp_var.name); @@ -795,10 +797,11 @@ public class Vala.CCodeMethodCallModule : CCodeAssignmentModule { ccode.add_assignment (temp_ref, ccall_expr); set_cvalue (expr, temp_ref); + ((GLibValue) expr.target_value).lvalue = true; } else { set_cvalue (expr, ccall_expr); + ((GLibValue) expr.target_value).lvalue = true; } - ((GLibValue) expr.target_value).lvalue = true; } params_it = params.iterator (); |