Re: error: missing terminating " character while modifying md file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Omar wrote:
 Ok, so after weeks of reading and looking at multiple .md files, I
felt ready to give it a try and decided to create some define_split's
on my own.
 I created a define_split RTL pattern which included this condition:
  "reload_completed
  && GET_CODE (operands[1]) == MEM
  && GET_CODE (XEXP (operands[1], 0)) == PLUS"

When I try to compile it I get:
../../gcc/config/c816/c816.md:36  error: missing terminating " character
../../gcc/config/c816/c816.md:37: error: stray '\' in program
...

If instead, I place the condition all in a single line:
  "reload_completed && GET_CODE (operands[1]) == MEM && GET_CODE (XEXP
(operands[1], 0)) == PLUS"
then gcc is happy.

I have been searching the web for hours now, but I have not been able
to find what is causing this.
Does anyone have a suggestion on what might be causing this issue?


It has to be a valid C string. You get that error for the same reason that you get it from this program:

----------->8---------
int f(const char *p);


int j(void)
{
    return f("hello
world");

}
----------->8---------

If the condition is complex, create a macro for it in your target.h file and use the macro in the .md file.

This is done in mips.h (see GENERATE_LL_SC) as well as I imagine other places if you want an example.

David Daney

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux