https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84900
--- Comment #2 from wierton <141242068 at smail dot nju.edu.cn> --- (In reply to Richard Biener from comment #1) > I belive the code is invalid and using literal 0 instead of test = 0 > shouldn't make it accepted either. clang rejects both variants. I think so too, the gcc should accept the both two forms or reject them together, but as I tested above, the gcc accept the first and reject the second.