This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug preprocessor/29612] New: gcc --save-temps does not give "multi-character character constant" error
- From: "ian at airs dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Oct 2006 04:40:05 -0000
- Subject: [Bug preprocessor/29612] New: gcc --save-temps does not give "multi-character character constant" error
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
When I compile this simple C file:
#include <stddef.h>
int main() {
return '\1\2';
}
I get a warning:
foo.c:3:10: warning: multi-character character constant
When I compile the same file using --save-temps, I do not get a warning.
Similarly, if I use -E to produce a preprocessed file, and compile that, I do
not get a warning. This is a bug: options like --save-temps and -E should not
affect the set of warnings which are issued.
However ,I noticed that I do get a warning if I compile with --save-temps
-Wsystem-headers.
This appears to be a bug in libcpp: when a line directive indicates that it is
entering a system header file, it records the current state. However, it
apparently does not restore the old state when it exits the system header file.
The effect is that preprocessor warnings and errors are suppressed in a .i
file if a system header file is included.
--
Summary: gcc --save-temps does not give "multi-character
character constant" error
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29612