Skip to content

Commit 956f8c0

Browse files
committed
[Driver] Override default location of config files
If directory for config files was specified in project configuration using parameters CLANG_CONFIG_FILE_SYSTEM_DIR or CLANG_CONFIG_FILE_USER_DIR, it was not overriden by command-line option `--config-system-dir=` or `--config-user-dir=` that specified empty path. This change corrects the behavior. It fixes the issue llvm#56836 ([clang] [test] test/Driver/config-file-errs.c fails if CLANG_CONFIG_FILE_SYSTEM_DIR is specified).
1 parent 7dd8e3d commit 956f8c0

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -970,23 +970,19 @@ bool Driver::loadConfigFile() {
970970
SmallString<128> CfgDir;
971971
CfgDir.append(
972972
CLOptions->getLastArgValue(options::OPT_config_system_dir_EQ));
973-
if (!CfgDir.empty()) {
974-
if (llvm::sys::fs::make_absolute(CfgDir).value() != 0)
975-
SystemConfigDir.clear();
976-
else
977-
SystemConfigDir = static_cast<std::string>(CfgDir);
978-
}
973+
if (CfgDir.empty() || llvm::sys::fs::make_absolute(CfgDir))
974+
SystemConfigDir.clear();
975+
else
976+
SystemConfigDir = static_cast<std::string>(CfgDir);
979977
}
980978
if (CLOptions->hasArg(options::OPT_config_user_dir_EQ)) {
981979
SmallString<128> CfgDir;
982980
CfgDir.append(
983981
CLOptions->getLastArgValue(options::OPT_config_user_dir_EQ));
984-
if (!CfgDir.empty()) {
985-
if (llvm::sys::fs::make_absolute(CfgDir).value() != 0)
986-
UserConfigDir.clear();
987-
else
988-
UserConfigDir = static_cast<std::string>(CfgDir);
989-
}
982+
if (CfgDir.empty() || llvm::sys::fs::make_absolute(CfgDir))
983+
UserConfigDir.clear();
984+
else
985+
UserConfigDir = static_cast<std::string>(CfgDir);
990986
}
991987
}
992988

0 commit comments

Comments
 (0)