Je pense que votre problème est dû au fait que vous définissez la variable v à l'intérieur du test. Comme expliqué par @rmalchow, cela fonctionnera si vous la changez en
int v;
if((v = someMethod()) != 0) return true;
Il y a aussi une autre question de portée variable. Même si ce que vous avez essayé fonctionnait, quel serait l'intérêt ? En supposant que vous puissiez définir la portée de la variable dans le test, votre variable v n'existerait pas en dehors de cette portée. Par conséquent, la création de la variable et l'attribution de la valeur seraient inutiles, car vous ne pourriez pas l'utiliser.
Les variables n'existent que dans la portée dans laquelle elles ont été créées. Puisque vous attribuez la valeur pour l'utiliser par la suite, tenez compte de la portée dans laquelle vous créez la variable afin qu'elle puisse être utilisée en cas de besoin.