"gdb --args ../objdir/gcc/cc1plus -Wall -Wextra example.cc " When I debug to this line of code: gcc/c-family/c-warn.cc : line 1184 in function: conversion_warning: if (!warn_conversion && !warn_sign_conversion && !warn_float_conversion ) return false; the program directly return false which means none of the three options have been enabled .
However , when I execute : "gdb --args ../objdir/gcc/cc1plus -Wall -Wextra -Wfloat-conversion example.cc" Although the function"conversion_warning" doesn't return false directly , in the following switch statement , it was unexpectedly seen by the program as "case COMPLEX_CST" . but In expamle.cc , there is no complex number: int main() { int a = 1/static_cast<double>(0) ; return 0 ; }