Matlab Coder Eliminating "Dead Code"

47 views (last 30 days)
Ashvin
Ashvin on 14 Jan 2026 at 18:58
Commented: dpb on 15 Jan 2026 at 16:37
Hello,
I have a large Matlab application that I'm trying to convert to C++ using Matlab Coder. I've resolved errors in the code such that code generation succeeds and the modified Matlab functions as expected but the resulting C++ doesn't behave the same way as the Matlab. I'm seeing that only one of the functions that sets the output of the entrypoint is actually being converted, and even then it's not converting all of it. It only converts the code that is reachable from the values I set in "coder.typeof", not the code that is reachable from all possible values of those strings and doubles. This is not the behavior I expected and I'd like it to treat my arguments as arbitrary strings and doubles. How can I do this?
Below is a simplified version of my entrypoint function and how I'm defining the arguments to the codegen command. Only the function set_A() is being generated, not set_B() or set_C(). Thanks in advance!
string_a = coder.typeof('a', [Inf 1], [true false]);
string_b = coder.typeof('a', [Inf 1], [true false]);
double_a = coder.typeof(0, [1 1], [false false]);
double_b = coder.typeof(0, [1 1], [false false]);
% codegen -config:lib -lang:c++ myEntryPoint -args {string_a, string_b, double_a, double_b} -report
function [A, B, C] = myEntryPoint(string_a, string_b, double_a, double_b)
A = set_A();
B = set_B(string_a, double_a);
C = set_C(string_b, double_b);
end
  3 Comments
Ashvin
Ashvin ongeveer 2 uur ago
You're correct, I wrote it up incorrectly. After attempting it with 1xInf not Infx1, the issue persists. I even tried it through the Coder GUI and assigned the strings to be 1xInf strings and the doubles to be 1x1 doubles. No default values were provided through the GUI.
dpb
dpb ongeveer een uur ago
I didn't really think it would necessrily solve the issue, but thought it might have confused things with what would have expected the MATLAB function handling of the char() strings to be.
I really don't know anything about using coder and found it to be quite confusing in looking at the coder.typeof documentation, thinking I might be able to interpret the issue.
Unless somebody who really does know the details of how it uses these definitions chimes in "real soon now", I would suggest you submit this to Mathworks as an official support request/bug at <Product Support Page> as the experts can explain in more depth just how the input arguments are interpreted.
I, too, would certainly not think from looking that it should have any reason to think any code was unreachable just based on those definitions but we don't have the full code to be able to see how they're all being used that might fail under static analysis.

Sign in to comment.

Answers (0)

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Products


Release

R2025b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!