summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2016-11-01 18:03:17 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2016-11-03 20:47:31 +0100
commitb905023ff33eb220f86a5a754a8828d89931517a (patch)
tree7109e289dd2cee384504a2a934a50126f0b65823
parent300f81c2517d875b5e1331d893d42f3901e4563e (diff)
downloadvala-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.vala7
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 ();