From fbda0d96f65f5f34003754bec700277dfc5f42a0 Mon Sep 17 00:00:00 2001 From: Jocelyn Le Sage Date: Tue, 6 May 2014 08:39:24 -0400 Subject: [PATCH] Fixed 'return from incompatible pointer type' compiler warnings that were produced by generated code for functions having 'const ptr' has return value. --- lib/cmock_generator.rb | 3 ++- lib/cmock_generator_plugin_ignore.rb | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/cmock_generator.rb b/lib/cmock_generator.rb index 6fe191c..255fe71 100644 --- a/lib/cmock_generator.rb +++ b/lib/cmock_generator.rb @@ -183,8 +183,9 @@ class CMockGenerator file << " UNITY_TEST_FAIL(cmock_line, \"Function '#{function[:name]}' called later than expected.\");\n" # file << " UNITY_TEST_ASSERT((cmock_call_instance->CallOrder == ++GlobalVerifyOrder), cmock_line, \"Out of order function calls. Function '#{function[:name]}'\");\n" end + return_type = function[:return][:const?] ? "const #{function[:return][:type]}" : function[:return][:type] file << @plugins.run(:mock_implementation, function) - file << " return cmock_call_instance->ReturnVal;\n" unless (function[:return][:void?]) + file << " return (#{return_type})cmock_call_instance->ReturnVal;\n" unless (function[:return][:void?]) file << "}\n\n" end diff --git a/lib/cmock_generator_plugin_ignore.rb b/lib/cmock_generator_plugin_ignore.rb index 807afd6..4118e5e 100644 --- a/lib/cmock_generator_plugin_ignore.rb +++ b/lib/cmock_generator_plugin_ignore.rb @@ -39,9 +39,10 @@ class CMockGeneratorPluginIgnore lines << " return;\n }\n" else retval = function[:return].merge( { :name => "cmock_call_instance->ReturnVal"} ) - lines << " if (cmock_call_instance == NULL)\n return Mock.#{function[:name]}_FinalReturn;\n" + return_type = function[:return][:const?] ? "const #{function[:return][:type]}" : function[:return][:type] + lines << " if (cmock_call_instance == NULL)\n return (#{return_type})Mock.#{function[:name]}_FinalReturn;\n" lines << " " + @utils.code_assign_argument_quickly("Mock.#{function[:name]}_FinalReturn", retval) unless (retval[:void?]) - lines << " return cmock_call_instance->ReturnVal;\n }\n" + lines << " return (#{return_type})cmock_call_instance->ReturnVal;\n }\n" end lines end