J'aimerais savoir si le morceau de code suivant va générer une erreur ou un avertissement lors de la compilation avec n'importe quel type d'optimisations gcc/g++ activées.
int a;
a = func();
if (a == 2) {
assert(false);
}
Je pense que le code suivant peut générer un avertissement "variable définie mais inutilisée", dans la configuration de la version.
int a;
a = func();
assert(a != 2);
Mais qu'en est-il du code ci-dessus ? (gcc peut supprimer l'instruction if elle-même parce que rien ne sera fait ni dans l'instruction if ni dans le bloc if (dans la version release), et lancer un avertissement "variable inutilisée mais définie" )
edit : ce n'est absolument pas une question concernant la réduction de la taille du code ou de l'exe. Je veux connaître un morceau de code qui réussit dans n'importe quelle configuration de construction.
edit : nous désactivons assert en mode release