r316195 - Revert r316193.

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Thu Oct 19 17:25:07 PDT 2017


Author: rsmith
Date: Thu Oct 19 17:25:07 2017
New Revision: 316195

URL: http://llvm.org/viewvc/llvm-project?rev=316195&view=rev
Log:
Revert r316193.

This patch breaks users using -fno-canonical-prefixes, for whom resolving
symlinks is not acceptable.

Removed:
    cfe/trunk/test/Preprocessor/dependencies-realpath.c
Modified:
    cfe/trunk/include/clang/Driver/Options.td
    cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h
    cfe/trunk/lib/Driver/Job.cpp
    cfe/trunk/lib/Driver/ToolChains/Clang.cpp
    cfe/trunk/lib/Frontend/CompilerInvocation.cpp
    cfe/trunk/lib/Frontend/DependencyFile.cpp
    cfe/trunk/lib/Tooling/ArgumentsAdjusters.cpp

Modified: cfe/trunk/include/clang/Driver/Options.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Thu Oct 19 17:25:07 2017
@@ -384,11 +384,6 @@ def MT : JoinedOrSeparate<["-"], "MT">,
     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]>;

Modified: cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h (original)
+++ cfe/trunk/include/clang/Frontend/DependencyOutputOptions.h Thu Oct 19 17:25:07 2017
@@ -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;
   }
 };

Modified: cfe/trunk/lib/Driver/Job.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Job.cpp?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/Job.cpp (original)
+++ cfe/trunk/lib/Driver/Job.cpp Thu Oct 19 17:25:07 2017
@@ -73,8 +73,8 @@ static bool skipArgs(const char *Flag, b
 
   // 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.

Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Thu Oct 19 17:25:07 2017
@@ -964,13 +964,6 @@ void Clang::AddPreprocessingOptions(Comp
   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)) ||

Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Thu Oct 19 17:25:07 2017
@@ -1002,7 +1002,6 @@ static void ParseDependencyOutputArgs(De
   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);

Modified: cfe/trunk/lib/Frontend/DependencyFile.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/DependencyFile.cpp?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/DependencyFile.cpp (original)
+++ cfe/trunk/lib/Frontend/DependencyFile.cpp Thu Oct 19 17:25:07 2017
@@ -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
   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));
 }
 

Modified: cfe/trunk/lib/Tooling/ArgumentsAdjusters.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/ArgumentsAdjusters.cpp?rev=316195&r1=316194&r2=316195&view=diff
==============================================================================
--- cfe/trunk/lib/Tooling/ArgumentsAdjusters.cpp (original)
+++ cfe/trunk/lib/Tooling/ArgumentsAdjusters.cpp Thu Oct 19 17:25:07 2017
@@ -58,9 +58,7 @@ ArgumentsAdjuster getClangStripDependenc
       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") ||

Removed: cfe/trunk/test/Preprocessor/dependencies-realpath.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/dependencies-realpath.c?rev=316194&view=auto
==============================================================================
--- cfe/trunk/test/Preprocessor/dependencies-realpath.c (original)
+++ cfe/trunk/test/Preprocessor/dependencies-realpath.c (removed)
@@ -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>




More information about the cfe-commits mailing list