https://github.com/llvm/llvm-project/pull/124786 implemented current working directory (CWD) optimization and the optimization was on by default. We have discovered that build system needs to be compatible with the CWD optimization and default off is a better behavior. The build system needs to be aware that the current working directory is ignored. Without a good way of notifying the build system, it is less risky to default to off. This PR implement the change. rdar://145860213
33 lines
921 B
C
33 lines
921 B
C
// REQUIRES: shell
|
|
|
|
// RUN: rm -rf %t
|
|
// RUN: split-file %s %t
|
|
// RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json
|
|
// RUN: clang-scan-deps -compilation-database %t/cdb.json -format \
|
|
// RUN: experimental-full -optimize-args=all > %t/result.json
|
|
// RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck %s
|
|
|
|
//--- cdb.json.in
|
|
[{
|
|
"directory": "DIR",
|
|
"command": "clang -c -g -gmodules DIR/tu.c -fmodules -fmodules-cache-path=DIR/cache -IDIR/include/ -fdebug-compilation-dir=DIR -o DIR/tu.o",
|
|
"file": "DIR/tu.c"
|
|
}]
|
|
|
|
//--- include/module.modulemap
|
|
module mod {
|
|
header "mod.h"
|
|
}
|
|
|
|
//--- include/mod.h
|
|
|
|
//--- tu.c
|
|
#include "mod.h"
|
|
|
|
// Check the -fdebug-compilation-dir used for the module is the root
|
|
// directory when current working directory optimization is in effect.
|
|
// CHECK: "modules": [
|
|
// CHECK: "command-line": [
|
|
// CHECK: "-fdebug-compilation-dir={{\/|.*:(\\)?}}",
|
|
// CHECK: "translation-units": [
|