c++ - Clang line directive -
i'm writing syntax translator outputs c++ code , have run interesting issue. have 2 files: ln.x , ln.cpp . in ln.x : abc in ln.cpp : #line 1 "ln.x" ( when try compile using gcc, prints corresponding line in ln.x : ln.x:1:1: error: expected unqualified-id @ end of input abc ^ ln.x:1:1: error: expected ‘)’ @ end of inpu however, clang prints line of same file: ln.x:1:2: error: expected unqualified-id ( ^ ln.x:1:2: error: expected ')' ln.x:1:1: note: match '(' ( ^ 2 errors generated. is there way clang print line of file gcc? this looks more bug feature. why want it? printing file nominated #line works long line matches text getting parsed, character-for-character. , if file exists in first place. i don’t see in gcc preprocessor manual (gcc 4.9 edition). however, there note once upon time (up 2001), gcc assume named file existed locally, or @ least parent directory existed. holdover bug. and, no, there's no way clan