https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109805

--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> ---
Btw, streaming of the CWD is prone to breakage when it changes between
preprocessing and compilation stage.  I think at least for C family languages
the CWD would need to be recorded by the preprocessor and made available
via line directives somehow?

This also seems "wrong" without LTO.

> ls t.c tmp
t.c

tmp:
t.h  t.o
> gcc -E t.c -o t.i
> cd tmp
> gcc ../t.i -g .c
> readelf -w t.o
...
 <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <c>   DW_AT_producer    : (indirect string, offset: 0x0): GNU C17 12.2.1
20220830 [revision e927d1cf141f221c5a32574bde0913307e140984] -mtune=generic
-march=x86-64 -g
    <10>   DW_AT_language    : 12       (ANSI C99)
    <11>   DW_AT_name        : t.c
    <15>   DW_AT_comp_dir    : (indirect string, offset: 0x71): /tmp/tmp
...
 The Directory Table (offset 0x1c):
  1     tmp

 The File Name Table (offset 0x21):
  Entry Dir     Time    Size    Name
  1     0       0       0       t.c
  2     1       0       0       t.h

and LTO just adds another level of "directory changing" (but for sure a more
common one).

Reply via email to