When running the simple C program
int main()
{
int x = 123123123123;
return 0;
}
gcc warns: warning: overflow in implicit constant conversion [-Woverflow]
.
I'm curous at what point in the compilation of the source code (eg. lexing, parsing, ...) is the compiler able to understand that a constant is too large for its type? I've had a look through the gcc source code but the only reference to "implicit constant conversion" that I can find exists in two test cases that don't detail the implementation.
question from:
https://stackoverflow.com/questions/65929455/how-does-gcc-know-that-an-integer-value-is-too-large 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…