Hi Alexey,
>Therefore, it appears that the lines [5] and [6] are wrong:
It doesn't appear wrong to me.
When a #include is done (or the GCC behind-the-covers-don't-use-this-in-your-code #include_next), it pulls in the specified file as if embedded, then returns back to processing the first file. That's what I see in your y.c result.
FYI - you can see your system include path via "gcc -E -v y.c".
HTH, --Eljay