https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93589
John Downing <jrdowning at yahoo dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jrdowning at yahoo dot com --- Comment #11 from John Downing <jrdowning at yahoo dot com> --- I think I understand, but one more question. The "*" operator promotes the RHS to int, then it converted back to short. But you say the warning is a "false positive". So if it's a "false positive", then why isn't that false positive suppressed? I know that clang does not show an error for the exact same code, so clearly it is compliant with the C++ standard to do so.