Thread (4 messages) flat view 4 messages, 3 authors, 2016-06-15

Re: Unreachable code in builtin-merge.c ?

From: Joshua Roys <hidden>
Date: 2016-06-15 22:47:36

On 10/23/2009 11:03 AM, Zivkov, Sasa wrote:
In the try_merge_strategy function the expression in the following if statement seems to always evaluate to TRUE:

         if (!strcmp(strategy, "recursive") || !strcmp(strategy, "subtree")) {

If strategy is "recursive" then !strcmp(strategy, "subtree") evaluates to TRUE.
If strategy is "subtree" then !strcmp(strategy, "recursive") evaluates to TRUE.
If strategy is neither "recursive" nor "subtree" then any side of || evaluates to TRUE.

Looks like the code in the else block is unreachable?


Saša Živkov
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hello,

Not quite :)  The strcmp() function actually returns 0 when the strings 
match (I know, it looks weird "!strcmp" -> "not string compare?!"), so 
the "if" really means: "if strategy is equal to 'recursive' or 
'subtree', do the following..."

Hope to help,

Josh
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help