r371027 - Revert r361885 "[Driver] Fix -working-directory issues"
Hans Wennborg via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 26 06:38:44 PDT 2019
On Thu, Sep 26, 2019 at 12:55 PM Mikael Holmén via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
>
> Hi Hans,
>
> I'm a bit suspicious against the part
>
> > This also revertes the part of r369938 which checked that
> -working-directory works.
>
> in this revert.
>
> You do:
>
> > + SmallString<128> Buf;
> > + if (!llvm::sys::fs::current_path(Buf))
> > + Buf = ".";
> > + CDB << "{ \"directory\": \"" << escape(Buf) << "\"";
>
> But if I look at r369938 it seems like before r369938 it looked like
>
> - SmallString<128> Buf;
> - if (llvm::sys::fs::current_path(Buf))
> - Buf = ".";
> - CDB << "{ \"directory\": \"" << escape(Buf) << "\"";
>
> Note the difference in the condition, where you do
>
> if (!llvm::sys::fs::current_path(Buf))
>
> but before it was
>
> if (llvm::sys::fs::current_path(Buf))
>
>
> We noticed this since
>
> clang -MJ test.json -O2 -nostdinc empty.c -S -o - && cat test.json
>
> started to behave differently after this revert. The "directory: " part
> in the output suddenly became ".".
You're right, it definitely looks like I messed up the revert :-(
Looking at the code again, I was probably thrown off by the
current_path returning false on success.
Since you've been investigating, are you set up to land a fix with a
test maybe? Otherwise I can do it, please let me know.
Thanks,
Hans
More information about the cfe-commits
mailing list