This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: how multi-line strings handled in gcc-4.0.0?
- From: Ian Lance Taylor <ian at airs dot com>
- To: cyclops <cyclops64 at gmail dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: 25 May 2005 22:16:35 -0400
- Subject: Re: how multi-line strings handled in gcc-4.0.0?
- References: <503d35a205052519112565640e@mail.gmail.com>
cyclops <cyclops64@gmail.com> writes:
> I found that some files like cpplex.c disappeared from 4.0.0. (Maybe
> in earlier version, i do not know)
It moved to libcpp/lex.c, although I don't know why it matters.
> The thing is in 3.2.3, when compile code like
>
> __asm__ ("
> .set noat
> mov r5,%0
> mov r8,%1
> mov r9,%2
> mov r10,%3
> svc
> .set at"
> :
> : "r"(SVC_LSEEK), "r"(file), "r"(ptr), "r"(dir)
> : "r5", "r8", "r9", "r10"
> );
>
>
> It only gives an warning: "warning: multi-line string literals are
> deprecated". The code is still generated correctly.
>
> However, in gcc-4.0.0, it treats the same piece code as error:
>
> "error: missing terminating " character"
>
> I know this problem can be solved by add "\" at the end of each line.
> However, we have a lot of code written in that way, we may not want to
> change them all. Is there a way to make gcc-4.0.0 to treat those
> multi-line strings as gcc-3.2.3 did?
No. Sorry.
The easiest fix is to use string concatenation, or to simply put a
backslash (or perhaps "\n\") at the end of each line.
Ian