If your compiler does not have the -fno-stack-protector option, it will return an error code (that is, something !=0 ), otherwise it will return 0 (which means "true" in the return codes), indicating that everything is in order.
Now the expression foo && bar means that bar will be executed only if foo returns error-free code (i.e. 0 ). So, you see that if your compiler does not have this flag, it will return false (something !=0 ), and the echo command will never be executed. But if it has a flag, echo will be executed.
source share