Variable Not fully defined on some execution path error
85 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
John Petersen
le 11 Mar 2021
Commenté : John Petersen
le 11 Mar 2021
I have some code that is inside a simulink block that gets an error when it's compiled. It says a variable is not fully defined on some execution paths, but it's not true.
Here's a simplified version of the code:
function myfunc(logicA, logicB)
A = logicA;
B = logicB; % also input from the function
if A
X = 1;
elseif B
X = 2;
end
if (A || B)
Y = X;
end
It complies fine if I change it to
function myfunc(logicA, logicB)
A = logicA;
B = logicB; % also input from the function
X=2
if A
X = 1;
end
if (A || B)
Y = X;
end
It looks like the compiler doesn't realize that it doesn't need X if (A || B) is false?
0 commentaires
Réponse acceptée
Walter Roberson
le 11 Mar 2021
disp(myfunc(1,1))
disp(myfunc(1,0))
disp(myfunc(0,1))
disp(myfunc(0,0))
function Y = myfunc(logicA, logicB)
A = logicA;
B = logicB; % also input from the function
if A
X = 1;
elseif B
X = 2;
end
if (A || B)
Y = X;
end
end
2 commentaires
Walter Roberson
le 11 Mar 2021
The code would only be acceptable if you do not unconditionally use Y afterwards.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur MATLAB Compiler dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!