Author: Serge Pavlov Date: 2022-08-17T18:52:53+07:00 New Revision: 956f8c0e1028edd65f68c4b386224d4ccb58c5b6
URL: https://github.com/llvm/llvm-project/commit/956f8c0e1028edd65f68c4b386224d4ccb58c5b6 DIFF: https://github.com/llvm/llvm-project/commit/956f8c0e1028edd65f68c4b386224d4ccb58c5b6.diff LOG: [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 https://github.com/llvm/llvm-project/issues/56836 ([clang] [test] test/Driver/config-file-errs.c fails if CLANG_CONFIG_FILE_SYSTEM_DIR is specified). Added: Modified: clang/lib/Driver/Driver.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 5b43a86d20581..59ddc89269d95 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -970,23 +970,19 @@ bool Driver::loadConfigFile() { SmallString<128> CfgDir; CfgDir.append( CLOptions->getLastArgValue(options::OPT_config_system_dir_EQ)); - if (!CfgDir.empty()) { - if (llvm::sys::fs::make_absolute(CfgDir).value() != 0) - SystemConfigDir.clear(); - else - SystemConfigDir = static_cast<std::string>(CfgDir); - } + if (CfgDir.empty() || llvm::sys::fs::make_absolute(CfgDir)) + SystemConfigDir.clear(); + else + SystemConfigDir = static_cast<std::string>(CfgDir); } if (CLOptions->hasArg(options::OPT_config_user_dir_EQ)) { SmallString<128> CfgDir; CfgDir.append( CLOptions->getLastArgValue(options::OPT_config_user_dir_EQ)); - if (!CfgDir.empty()) { - if (llvm::sys::fs::make_absolute(CfgDir).value() != 0) - UserConfigDir.clear(); - else - UserConfigDir = static_cast<std::string>(CfgDir); - } + if (CfgDir.empty() || llvm::sys::fs::make_absolute(CfgDir)) + UserConfigDir.clear(); + else + UserConfigDir = static_cast<std::string>(CfgDir); } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits