https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70495
Bug ID: 70495 Summary: false warning: comparison between signed and unsigned integer expressions Product: gcc Version: 5.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: andras.szilard at gmail dot com Target Milestone: --- Hi, I have the strange warning "comparison between signed and unsigned integer expressions" when only unsigned types are used (more than 2 members). Simplest example (I could find): uint32_t a = 0; uint8_t b = 0; a < b + b + b; Some more details: http://coliru.stacked-crooked.com/a/816fde87f946dcad Side notes: - Originally I used size_t instead of uint32_t (as in my real-life code). - Using uint16_t instead of uint32_t / size_t does not give this warning. - clang++ does not give this warning. Tested the sample code with these g++ compiler versions: 4.8.4, 5.3.0 and 5.3.1. Please, clarify what is going on! :) Thanks in advance!