From: Andreas S. <And...@mc...> - 2000-09-12 18:33:52
|
Hello, Wolfram Gloger schrieb: > > Hello, > > > g++ -c -I /home/stuebing/tmp/mingw32/ test.C > > foo\myfoo.h: In method `void Memory::store_leak_history(int)´: > > foo\myfoo.h:6: unknown escape sequence `\h´ > > foo\myfoo.h:6: unknown escape sequence `\s´ > > foo\myfoo.h:6: unknown escape sequence `\m´ > > foo\myfoo.h:6: unknown escape sequence `\m´ > > > > It seems as it is trying to interpret the filename of a #line directive > > as escape sequences. > > Not a bug, the compiler must behave like that. According to the C standard > (6.10.4 in my draft of C99), > > [#1] The string literal of a #line directive, if present, > shall be a character string literal. > > This has been seen as a flaw in the standard by some, and may be > changed in the future, but for now it is clearly best to use the > forward slash in #line directives. At the moment I do not see any possibility to tell the compiler to not rewrite /home/stuebing/tmp to \\home\\stuebing\\tmp. I would like to use only forward slashes (see also my command line above), but the compiler environment (cpp??) or mingw32 seems to rewrite forward slashes to backward slashes. This would be ok, however, on some occasions the compiler issues an error message, but only on some rare occasions. If you remove only one line from the include file I sent no error message is issued. -- MfG, Andreas |