This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: how multi-line strings handled in gcc-4.0.0?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]