In Bugzilla PR # 70275, Manuel López-Ibáñez reports that even though he provides the "-Werror=return-type" option, the compiler doesn't flag the warning/error about a control reaching the end of a non-void function, due to the presence of the "-w" option. He points out that clang++ wtill flags the promoted warning even though warnings are inhibited.
I'm thinking that not reporting the promoted error is the correct and desired behavior, based on two factors: 1) Warnings are inhibited, so there is no warning to promote. 2) The comment in diagnostic.c which reads: /* Give preference to being able to inhibit warnings, before they get reclassified to something else. */ I was looking at this issue as one I could use to get my feet wet in GCC maintenance , and would be glad to take on if it is decided that it is desired, which I would argue that it is not, but I thought I'd open up discussion on the topic. I have worked on the MIcrochip PIC18 C compiler, and worked for DDC-I, supporting their compiler suites,(Ada, C/C++) as well as some work on the ASIS standard, and thought it might be fun to work on GCC. Looking forward to reading discussion on the topic! Kevin Tucker