cpp mishandles \ in filenames
Mon Jan 14 13:36:00 GMT 2002
On Mon, Jan 14, 2002 at 07:31:25AM +0000, Neil Booth wrote:
> Right. The interpretation of #line and #include is presently correct,
> to the best of my knowledge.
> The bug is that we want to be sure that the # lines we output are read
> back in so that in binary they match. In other words, since they are
> read in as a normal string literal the file names need to be escaped,
> which I think is exactly what Mike's original patch did.
Yes, but I want to go through the code and verify that we handle file
names consistently all the way from the initial #line directive to the
assembly dump. Right now, writing
#line 123 "file with\ttab in name"
.stabs "file with\\ttab in name",132,0,0,.Ltext1
which is wrong, if we believe the standard requires escape sequence
interpretation in #line, and I don't believe Mike's patch addressed
this. (Mind, 2.95 does the same thing.)
I would also like to hear back from comp.std.c on why exactly #line
and #include are inconsistent, if only for the sake of the manual.
More information about the Gcc-bugs