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? I am using FC6, and Xemacs. The GCC version on my system is gcc (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30). Thanks, -Omar