https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69650
--- Comment #34 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- (In reply to Bernd Schmidt from comment #33) > It does mean LC_LEAVE, but AFAICT the filename is the file being returned to. > > Including a file called "t.h" from "v.c" gives this after -E: > > # 1 "t.h" 1 > int t; > # 2 "v.c" 2 Then, I agree the error doesn't make any sense. My assumption of how the filename in the directive was being used was completely wrong. But then in case of error, one cannot really tell which file was going to be left. However, one could detect which file we are suppose to enter, like in: # 1 "test.c" # 1 "a.h" 1 # 1 "b.h" 1 int a; # 1 "c.h" 2 # 2 "test.c" 2