forked from OSchip/llvm-project
Revert r316193.
This patch breaks users using -fno-canonical-prefixes, for whom resolving symlinks is not acceptable. llvm-svn: 316195
This commit is contained in:
parent
90161dad75
commit
daae9528b7
|
@ -384,11 +384,6 @@ def MT : JoinedOrSeparate<["-"], "MT">, Group<M_Group>, Flags<[CC1Option]>,
|
|||
HelpText<"Specify name of main file output in depfile">;
|
||||
def MV : Flag<["-"], "MV">, Group<M_Group>, Flags<[CC1Option]>,
|
||||
HelpText<"Use NMake/Jom format for the depfile">;
|
||||
def fno_canonical_system_headers : Flag<["-"], "fno-canonical-system-headers">,
|
||||
Group<M_Group>, Flags<[CC1Option]>,
|
||||
HelpText<"Do not shorten system header paths in depfiles">;
|
||||
def fcanonical_system_headers : Flag<["-"], "fcanonical-system-headers">,
|
||||
Group<M_Group>;
|
||||
def Mach : Flag<["-"], "Mach">, Group<Link_Group>;
|
||||
def O0 : Flag<["-"], "O0">, Group<O_Group>, Flags<[CC1Option, HelpHidden]>;
|
||||
def O4 : Flag<["-"], "O4">, Group<O_Group>, Flags<[CC1Option, HelpHidden]>;
|
||||
|
|
|
@ -30,8 +30,6 @@ public:
|
|||
unsigned AddMissingHeaderDeps : 1; ///< Add missing headers to dependency list
|
||||
unsigned PrintShowIncludes : 1; ///< Print cl.exe style /showIncludes info.
|
||||
unsigned IncludeModuleFiles : 1; ///< Include module file dependencies.
|
||||
unsigned CanonicalSystemHeaders : 1; ///< Try to output a shorter path for
|
||||
/// system header dependencies.
|
||||
|
||||
/// The format for the dependency file.
|
||||
DependencyOutputFormat OutputFormat;
|
||||
|
@ -69,7 +67,6 @@ public:
|
|||
AddMissingHeaderDeps = 0;
|
||||
PrintShowIncludes = 0;
|
||||
IncludeModuleFiles = 0;
|
||||
CanonicalSystemHeaders = 1;
|
||||
OutputFormat = DependencyOutputFormat::Make;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -73,8 +73,8 @@ static bool skipArgs(const char *Flag, bool HaveCrashVFS, int &SkipNum,
|
|||
|
||||
// These flags are all of the form -Flag and have no second argument.
|
||||
ShouldSkip = llvm::StringSwitch<bool>(Flag)
|
||||
.Cases("-M", "-MM", "-MG", "-MP", "-MD", "-MMD", true)
|
||||
.Cases("-fno-canonical-system-headers", "-fcanonical-system-headers", true)
|
||||
.Cases("-M", "-MM", "-MG", "-MP", "-MD", true)
|
||||
.Case("-MMD", true)
|
||||
.Default(false);
|
||||
|
||||
// Match found.
|
||||
|
|
|
@ -964,13 +964,6 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
|
|||
Args.AddLastArg(CmdArgs, options::OPT_C);
|
||||
Args.AddLastArg(CmdArgs, options::OPT_CC);
|
||||
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fno_canonical_system_headers,
|
||||
options::OPT_fcanonical_system_headers)) {
|
||||
if (A->getOption().matches(options::OPT_fno_canonical_system_headers)) {
|
||||
CmdArgs.push_back("-fno-canonical-system-headers");
|
||||
}
|
||||
}
|
||||
|
||||
// Handle dependency file generation.
|
||||
if ((A = Args.getLastArg(options::OPT_M, options::OPT_MM)) ||
|
||||
(A = Args.getLastArg(options::OPT_MD)) ||
|
||||
|
|
|
@ -1002,7 +1002,6 @@ static void ParseDependencyOutputArgs(DependencyOutputOptions &Opts,
|
|||
Opts.Targets = Args.getAllArgValues(OPT_MT);
|
||||
Opts.IncludeSystemHeaders = Args.hasArg(OPT_sys_header_deps);
|
||||
Opts.IncludeModuleFiles = Args.hasArg(OPT_module_file_deps);
|
||||
Opts.CanonicalSystemHeaders = !Args.hasArg(OPT_fno_canonical_system_headers);
|
||||
Opts.UsePhonyTargets = Args.hasArg(OPT_MP);
|
||||
Opts.ShowHeaderIncludes = Args.hasArg(OPT_H);
|
||||
Opts.HeaderIncludeOutputFile = Args.getLastArgValue(OPT_header_include_file);
|
||||
|
|
|
@ -161,7 +161,6 @@ class DFGImpl : public PPCallbacks {
|
|||
bool AddMissingHeaderDeps;
|
||||
bool SeenMissingHeader;
|
||||
bool IncludeModuleFiles;
|
||||
bool CanonicalSystemHeaders;
|
||||
DependencyOutputFormat OutputFormat;
|
||||
|
||||
private:
|
||||
|
@ -177,7 +176,6 @@ public:
|
|||
AddMissingHeaderDeps(Opts.AddMissingHeaderDeps),
|
||||
SeenMissingHeader(false),
|
||||
IncludeModuleFiles(Opts.IncludeModuleFiles),
|
||||
CanonicalSystemHeaders(Opts.CanonicalSystemHeaders),
|
||||
OutputFormat(Opts.OutputFormat) {
|
||||
for (const auto &ExtraDep : Opts.ExtraDeps) {
|
||||
AddFilename(ExtraDep);
|
||||
|
@ -290,15 +288,6 @@ void DFGImpl::FileChanged(SourceLocation Loc,
|
|||
if (!FileMatchesDepCriteria(Filename.data(), FileType))
|
||||
return;
|
||||
|
||||
// Try to shorten system header paths like GCC does (unless
|
||||
// -fno-canonical-system-headers is given).
|
||||
if (CanonicalSystemHeaders && isSystem(FileType)) {
|
||||
StringRef RealPath = FE->tryGetRealPathName();
|
||||
if (!RealPath.empty() && RealPath.size() < Filename.size()) {
|
||||
Filename = RealPath;
|
||||
}
|
||||
}
|
||||
|
||||
AddFilename(llvm::sys::path::remove_leading_dotslash(Filename));
|
||||
}
|
||||
|
||||
|
|
|
@ -58,9 +58,7 @@ ArgumentsAdjuster getClangStripDependencyFileAdjuster() {
|
|||
StringRef Arg = Args[i];
|
||||
// All dependency-file options begin with -M. These include -MM,
|
||||
// -MF, -MG, -MP, -MT, -MQ, -MD, and -MMD.
|
||||
// The exception is -f[no-]canonical-system-headers.
|
||||
if (!Arg.startswith("-M") && Arg != "-fno-canonical-system-headers" &&
|
||||
Arg != "-fcanonical-system-headers")
|
||||
if (!Arg.startswith("-M"))
|
||||
AdjustedArgs.push_back(Args[i]);
|
||||
|
||||
if ((Arg == "-MF") || (Arg == "-MT") || (Arg == "-MQ") ||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
// RUN: mkdir -p %t/sub/dir
|
||||
// RUN: echo > %t/sub/empty.h
|
||||
|
||||
// Test that system header paths are expanded
|
||||
//
|
||||
// RUN: %clang -fsyntax-only -MD -MF %t.d -MT foo %s -isystem %t/sub/dir/..
|
||||
// RUN: FileCheck -check-prefix=TEST1 %s < %t.d
|
||||
// TEST1: foo:
|
||||
// TEST1: sub{{/|\\}}empty.h
|
||||
|
||||
// Test that system header paths are not expanded to a longer form
|
||||
//
|
||||
// RUN: cd %t && %clang -fsyntax-only -MD -MF %t.d -MT foo %s -isystem sub/dir/..
|
||||
// RUN: FileCheck -check-prefix=TEST2 %s < %t.d
|
||||
// TEST2: foo:
|
||||
// TEST2: sub/dir/..{{/|\\}}empty.h
|
||||
|
||||
// Test that user header paths are not expanded
|
||||
//
|
||||
// RUN: %clang -fsyntax-only -MD -MF %t.d -MT foo %s -I %t/sub/dir/..
|
||||
// RUN: FileCheck -check-prefix=TEST3 %s < %t.d
|
||||
// TEST3: foo:
|
||||
// TEST3: sub/dir/..{{/|\\}}empty.h
|
||||
|
||||
// Test that system header paths are not expanded with -fno-canonical-system-headers
|
||||
// (and also that the -fsystem-system-headers option is accepted)
|
||||
//
|
||||
// RUN: %clang -fsyntax-only -MD -MF %t.d -MT foo %s -I %t/sub/dir/.. -fcanonical-system-headers -fno-canonical-system-headers
|
||||
// RUN: FileCheck -check-prefix=TEST4 %s < %t.d
|
||||
// TEST4: foo:
|
||||
// TEST4: sub/dir/..{{/|\\}}empty.h
|
||||
|
||||
#include <empty.h>
|
Loading…
Reference in New Issue