Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Same issue.
Try this:
Roll back to AS-C3.
Set gradle back to '...:3.6.0-alpha03'. (The issue is caused by this, I think.)
Clean project.
I'm sure an update will fix it.
Try this:
Roll back to AS-C3.
Set gradle back to '...:3.6.0-alpha03'. (The issue is caused by this, I think.)
Clean project.
I'm sure an update will fix it.
ap...@google.com <ap...@google.com> #3
Same issue.
gu...@google.com <gu...@google.com> #4
Successfully downgraded projects to use AS3.6C3
RG
RG
Description
,out/
that is past to the compiler using-ffile-prefix-map
. The intention of this transformation was to appendout/
to any path that didn't previously match one of the other transformations (which remove absolute paths to the build directory and root project directory). This applies both to debug and coverage information.However, LLVM currently stores these path transformations in ahttps://llvm.googlesource.com/llvm-project/+/a45dd3d8140eab78a4554484c2b0435582ee262a/clang/include/clang/Basic/CodeGenOptions.h#183 ). The key for this
std::map
(std::map
was the left-side of the comma, leading to the entries being ordered lexicographically. For,out/
, the left-hand path is""
, which is sorted before any other string. Effectively, the,out/
prefix map is always being applied.The reason why this hasn't been an issue yet is that most people use single directory build dirs. This leads to paths to source files that are originally like
../pw_log/public/pw_log/log.h
. This would then be prepended without/
, leading toout/../pw_log/public/pw_log/log.h
. This hid the fact that the-ffile-prefix-map rebase_path("//", root_build_dir) + "="
option was not being used because prependingout
is basically has the same outcome for single directory build dirs. The issue becomes apparent if you have a build dir likeout/test
, where the path would then becomeout/../../pw_log/public/pw_log/log.h
, which will point to a non-existent file.