Author: twoh Date: Mon Jun 13 13:32:30 2016 New Revision: 272572 URL: http://llvm.org/viewvc/llvm-project?rev=272572&view=rev Log: Revert r272562 for build bot failure (clang-x86-win2008-selfhost)
Removed: cfe/trunk/test/Lexer/Inputs/case-insensitive-include.h cfe/trunk/test/Lexer/case-insensitive-include-ms.c cfe/trunk/test/Lexer/case-insensitive-include.c cfe/trunk/test/Lexer/case-insensitive-system-include.c Modified: cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td cfe/trunk/include/clang/Basic/FileManager.h cfe/trunk/include/clang/Basic/VirtualFileSystem.h cfe/trunk/include/clang/Lex/DirectoryLookup.h cfe/trunk/include/clang/Lex/HeaderSearch.h cfe/trunk/lib/Basic/FileManager.cpp cfe/trunk/lib/Basic/VirtualFileSystem.cpp cfe/trunk/lib/Lex/HeaderSearch.cpp cfe/trunk/lib/Lex/PPDirectives.cpp cfe/trunk/test/PCH/case-insensitive-include.c Modified: cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticLexKinds.td Mon Jun 13 13:32:30 2016 @@ -275,13 +275,6 @@ def ext_missing_whitespace_after_macro_n def warn_missing_whitespace_after_macro_name : Warning< "whitespace recommended after macro name">; -class NonportablePath : Warning< - "non-portable path to file '%0'; specified path differs in case from file" - " name on disk">; -def pp_nonportable_path : NonportablePath, InGroup<DiagGroup<"nonportable-include-path">>; -def pp_nonportable_system_path : NonportablePath, DefaultIgnore, - InGroup<DiagGroup<"nonportable-system-include-path">>; - def pp_pragma_once_in_main_file : Warning<"#pragma once in main file">, InGroup<DiagGroup<"pragma-once-outside-header">>; def pp_pragma_sysheader_in_main_file : Warning< Modified: cfe/trunk/include/clang/Basic/FileManager.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileManager.h?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/FileManager.h (original) +++ cfe/trunk/include/clang/Basic/FileManager.h Mon Jun 13 13:32:30 2016 @@ -52,7 +52,6 @@ public: /// descriptor for the file. class FileEntry { const char *Name; // Name of the file. - std::string RealPathName; // Real path to the file; could be empty. off_t Size; // File size in bytes. time_t ModTime; // Modification time of file. const DirectoryEntry *Dir; // Directory file lives in. @@ -83,7 +82,6 @@ public: } const char *getName() const { return Name; } - StringRef tryGetRealPathName() const { return RealPathName; } bool isValid() const { return IsValid; } off_t getSize() const { return Size; } unsigned getUID() const { return UID; } Modified: cfe/trunk/include/clang/Basic/VirtualFileSystem.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/VirtualFileSystem.h?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/VirtualFileSystem.h (original) +++ cfe/trunk/include/clang/Basic/VirtualFileSystem.h Mon Jun 13 13:32:30 2016 @@ -91,13 +91,6 @@ public: virtual ~File(); /// \brief Get the status of the file. virtual llvm::ErrorOr<Status> status() = 0; - /// \brief Get the name of the file - virtual llvm::ErrorOr<std::string> getName() { - if (auto Status = status()) - return Status->getName().str(); - else - return Status.getError(); - } /// \brief Get the contents of the file as a \p MemoryBuffer. virtual llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> getBuffer(const Twine &Name, int64_t FileSize = -1, Modified: cfe/trunk/include/clang/Lex/DirectoryLookup.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/DirectoryLookup.h?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/include/clang/Lex/DirectoryLookup.h (original) +++ cfe/trunk/include/clang/Lex/DirectoryLookup.h Mon Jun 13 13:32:30 2016 @@ -151,9 +151,6 @@ public: /// /// \param HS The header search instance to search with. /// - /// \param IncludeLoc the source location of the #include or #import - /// directive. - /// /// \param SearchPath If not NULL, will be set to the search path relative /// to which the file was found. /// @@ -175,7 +172,6 @@ public: /// a framework include ("Foo.h" -> "Foo/Foo.h"), set the new name to this /// vector and point Filename to it. const FileEntry *LookupFile(StringRef &Filename, HeaderSearch &HS, - SourceLocation IncludeLoc, SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *RelativePath, Module *RequestingModule, Modified: cfe/trunk/include/clang/Lex/HeaderSearch.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/HeaderSearch.h?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/include/clang/Lex/HeaderSearch.h (original) +++ cfe/trunk/include/clang/Lex/HeaderSearch.h Mon Jun 13 13:32:30 2016 @@ -580,9 +580,8 @@ private: /// \brief Look up the file with the specified name and determine its owning /// module. const FileEntry * - getFileAndSuggestModule(StringRef FileName, SourceLocation IncludeLoc, - const DirectoryEntry *Dir, bool IsSystemHeaderDir, - Module *RequestingModule, + getFileAndSuggestModule(StringRef FileName, const DirectoryEntry *Dir, + bool IsSystemHeaderDir, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule); public: Modified: cfe/trunk/lib/Basic/FileManager.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileManager.cpp?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/lib/Basic/FileManager.cpp (original) +++ cfe/trunk/lib/Basic/FileManager.cpp Mon Jun 13 13:32:30 2016 @@ -312,9 +312,6 @@ const FileEntry *FileManager::getFile(St UFE.InPCH = Data.InPCH; UFE.File = std::move(F); UFE.IsValid = true; - if (UFE.File) - if (auto RealPathName = UFE.File->getName()) - UFE.RealPathName = *RealPathName; return &UFE; } Modified: cfe/trunk/lib/Basic/VirtualFileSystem.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/VirtualFileSystem.cpp?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/lib/Basic/VirtualFileSystem.cpp (original) +++ cfe/trunk/lib/Basic/VirtualFileSystem.cpp Mon Jun 13 13:32:30 2016 @@ -140,19 +140,16 @@ namespace { class RealFile : public File { int FD; Status S; - std::string RealName; friend class RealFileSystem; - RealFile(int FD, StringRef NewName, StringRef NewRealPathName) + RealFile(int FD, StringRef NewName) : FD(FD), S(NewName, {}, {}, {}, {}, {}, - llvm::sys::fs::file_type::status_error, {}), - RealName(NewRealPathName.str()) { + llvm::sys::fs::file_type::status_error, {}) { assert(FD >= 0 && "Invalid or inactive file descriptor"); } public: ~RealFile() override; ErrorOr<Status> status() override; - ErrorOr<std::string> getName() override; ErrorOr<std::unique_ptr<MemoryBuffer>> getBuffer(const Twine &Name, int64_t FileSize, bool RequiresNullTerminator, @@ -173,10 +170,6 @@ ErrorOr<Status> RealFile::status() { return S; } -ErrorOr<std::string> RealFile::getName() { - return RealName.empty() ? S.getName().str() : RealName; -} - ErrorOr<std::unique_ptr<MemoryBuffer>> RealFile::getBuffer(const Twine &Name, int64_t FileSize, bool RequiresNullTerminator, bool IsVolatile) { @@ -214,10 +207,9 @@ ErrorOr<Status> RealFileSystem::status(c ErrorOr<std::unique_ptr<File>> RealFileSystem::openFileForRead(const Twine &Name) { int FD; - SmallString<256> RealName; - if (std::error_code EC = sys::fs::openFileForRead(Name, FD, &RealName)) + if (std::error_code EC = sys::fs::openFileForRead(Name, FD)) return EC; - return std::unique_ptr<File>(new RealFile(FD, Name.str(), RealName.str())); + return std::unique_ptr<File>(new RealFile(FD, Name.str())); } llvm::ErrorOr<std::string> RealFileSystem::getCurrentWorkingDirectory() const { Modified: cfe/trunk/lib/Lex/HeaderSearch.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/HeaderSearch.cpp?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/lib/Lex/HeaderSearch.cpp (original) +++ cfe/trunk/lib/Lex/HeaderSearch.cpp Mon Jun 13 13:32:30 2016 @@ -250,9 +250,8 @@ const char *DirectoryLookup::getName() c } const FileEntry *HeaderSearch::getFileAndSuggestModule( - StringRef FileName, SourceLocation IncludeLoc, const DirectoryEntry *Dir, - bool IsSystemHeaderDir, Module *RequestingModule, - ModuleMap::KnownHeader *SuggestedModule) { + StringRef FileName, const DirectoryEntry *Dir, bool IsSystemHeaderDir, + Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule) { // If we have a module map that might map this header, load it and // check whether we'll have a suggestion for a module. const FileEntry *File = getFileMgr().getFile(FileName, /*OpenFile=*/true); @@ -273,7 +272,6 @@ const FileEntry *HeaderSearch::getFileAn const FileEntry *DirectoryLookup::LookupFile( StringRef &Filename, HeaderSearch &HS, - SourceLocation IncludeLoc, SmallVectorImpl<char> *SearchPath, SmallVectorImpl<char> *RelativePath, Module *RequestingModule, @@ -299,7 +297,7 @@ const FileEntry *DirectoryLookup::Lookup RelativePath->append(Filename.begin(), Filename.end()); } - return HS.getFileAndSuggestModule(TmpDir, IncludeLoc, getDir(), + return HS.getFileAndSuggestModule(TmpDir, getDir(), isSystemHeaderDirectory(), RequestingModule, SuggestedModule); } @@ -587,7 +585,7 @@ const FileEntry *HeaderSearch::LookupFil RelativePath->append(Filename.begin(), Filename.end()); } // Otherwise, just return the file. - return getFileAndSuggestModule(Filename, IncludeLoc, nullptr, + return getFileAndSuggestModule(Filename, nullptr, /*IsSystemHeaderDir*/false, RequestingModule, SuggestedModule); } @@ -624,7 +622,7 @@ const FileEntry *HeaderSearch::LookupFil Includer ? getFileInfo(Includer).DirInfo != SrcMgr::C_User : BuildSystemModule; if (const FileEntry *FE = getFileAndSuggestModule( - TmpDir, IncludeLoc, IncluderAndDir.second, IncluderIsSystemHeader, + TmpDir, IncluderAndDir.second, IncluderIsSystemHeader, RequestingModule, SuggestedModule)) { if (!Includer) { assert(First && "only first includer can have no file"); @@ -715,7 +713,7 @@ const FileEntry *HeaderSearch::LookupFil bool InUserSpecifiedSystemFramework = false; bool HasBeenMapped = false; const FileEntry *FE = SearchDirs[i].LookupFile( - Filename, *this, IncludeLoc, SearchPath, RelativePath, RequestingModule, + Filename, *this, SearchPath, RelativePath, RequestingModule, SuggestedModule, InUserSpecifiedSystemFramework, HasBeenMapped, MappedName); if (HasBeenMapped) { Modified: cfe/trunk/lib/Lex/PPDirectives.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPDirectives.cpp?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/lib/Lex/PPDirectives.cpp (original) +++ cfe/trunk/lib/Lex/PPDirectives.cpp Mon Jun 13 13:32:30 2016 @@ -24,10 +24,6 @@ #include "clang/Lex/ModuleLoader.h" #include "clang/Lex/Pragma.h" #include "llvm/ADT/APInt.h" -#include "llvm/ADT/STLExtras.h" -#include "llvm/ADT/StringExtras.h" -#include "llvm/ADT/StringSwitch.h" -#include "llvm/ADT/iterator_range.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Support/Path.h" #include "llvm/Support/SaveAndRestore.h" @@ -141,84 +137,6 @@ static MacroDiag shouldWarnOnMacroUndef( return MD_NoWarn; } -// Return true if we want to issue a diagnostic by default if we -// encounter this name in a #include with the wrong case. For now, -// this includes the standard C and C++ headers, Posix headers, -// and Boost headers. Improper case for these #includes is a -// potential portability issue. -static bool warnByDefaultOnWrongCase(StringRef Include) { - // If the first component of the path is "boost", treat this like a standard header - // for the purposes of diagnostics. - if (::llvm::sys::path::begin(Include)->equals_lower("boost")) - return true; - - // "condition_variable" is the longest standard header name at 18 characters. - // If the include file name is longer than that, it can't be a standard header. - static constexpr std::size_t MaxStdHeaderNameLen = 18u; - if (Include.size() > MaxStdHeaderNameLen) - return false; - - // Lowercase and normalize the search string. - SmallString<32> LowerInclude{Include}; - for (char &Ch : LowerInclude) { - // In the ASCII range? - if (Ch < 0 || Ch > 0x7f) - return false; // Can't be a standard header - // ASCII lowercase: - if (Ch >= 'A' && Ch <= 'Z') - Ch += 'a' - 'A'; - // Normalize path separators for comparison purposes. - else if (::llvm::sys::path::is_separator(Ch)) - Ch = '/'; - } - - // The standard C/C++ and Posix headers - return llvm::StringSwitch<bool>(LowerInclude) - // C library headers - .Cases("assert.h", "complex.h", "ctype.h", "errno.h", "fenv.h", true) - .Cases("float.h", "inttypes.h", "iso646.h", "limits.h", "locale.h", true) - .Cases("math.h", "setjmp.h", "signal.h", "stdalign.h", "stdarg.h", true) - .Cases("stdatomic.h", "stdbool.h", "stddef.h", "stdint.h", "stdio.h", true) - .Cases("stdlib.h", "stdnoreturn.h", "string.h", "tgmath.h", "threads.h", true) - .Cases("time.h", "uchar.h", "wchar.h", "wctype.h", true) - - // C++ headers for C library facilities - .Cases("cassert", "ccomplex", "cctype", "cerrno", "cfenv", true) - .Cases("cfloat", "cinttypes", "ciso646", "climits", "clocale", true) - .Cases("cmath", "csetjmp", "csignal", "cstdalign", "cstdarg", true) - .Cases("cstdbool", "cstddef", "cstdint", "cstdio", "cstdlib", true) - .Cases("cstring", "ctgmath", "ctime", "cuchar", "cwchar", true) - .Case("cwctype", true) - - // C++ library headers - .Cases("algorithm", "fstream", "list", "regex", "thread", true) - .Cases("array", "functional", "locale", "scoped_allocator", "tuple", true) - .Cases("atomic", "future", "map", "set", "type_traits", true) - .Cases("bitset", "initializer_list", "memory", "shared_mutex", "typeindex", true) - .Cases("chrono", "iomanip", "mutex", "sstream", "typeinfo", true) - .Cases("codecvt", "ios", "new", "stack", "unordered_map", true) - .Cases("complex", "iosfwd", "numeric", "stdexcept", "unordered_set", true) - .Cases("condition_variable", "iostream", "ostream", "streambuf", "utility", true) - .Cases("deque", "istream", "queue", "string", "valarray", true) - .Cases("exception", "iterator", "random", "strstream", "vector", true) - .Cases("forward_list", "limits", "ratio", "system_error", true) - - // POSIX headers (which aren't also C headers) - .Cases("aio.h", "arpa/inet.h", "cpio.h", "dirent.h", "dlfcn.h", true) - .Cases("fcntl.h", "fmtmsg.h", "fnmatch.h", "ftw.h", "glob.h", true) - .Cases("grp.h", "iconv.h", "langinfo.h", "libgen.h", "monetary.h", true) - .Cases("mqueue.h", "ndbm.h", "net/if.h", "netdb.h", "netinet/in.h", true) - .Cases("netinet/tcp.h", "nl_types.h", "poll.h", "pthread.h", "pwd.h", true) - .Cases("regex.h", "sched.h", "search.h", "semaphore.h", "spawn.h", true) - .Cases("strings.h", "stropts.h", "sys/ipc.h", "sys/mman.h", "sys/msg.h", true) - .Cases("sys/resource.h", "sys/select.h", "sys/sem.h", "sys/shm.h", "sys/socket.h", true) - .Cases("sys/stat.h", "sys/statvfs.h", "sys/time.h", "sys/times.h", "sys/types.h", true) - .Cases("sys/uio.h", "sys/un.h", "sys/utsname.h", "sys/wait.h", "syslog.h", true) - .Cases("tar.h", "termios.h", "trace.h", "ulimit.h", true) - .Cases("unistd.h", "utime.h", "utmpx.h", "wordexp.h", true) - .Default(false); -} - bool Preprocessor::CheckMacroName(Token &MacroNameTok, MacroUse isDefineUndef, bool *ShadowFlag) { // Missing macro name? @@ -1638,39 +1556,6 @@ static void diagnoseAutoModuleImport( ("@import " + PathString + ";").str()); } -// Given a vector of path components and a string containing the real -// path to the file, build a properly-cased replacement in the vector, -// and return true if the replacement should be suggested. -static bool trySimplifyPath(SmallVectorImpl<StringRef> &Components, - StringRef RealPathName) { - auto RealPathComponentIter = llvm::sys::path::rbegin(RealPathName); - auto RealPathComponentEnd = llvm::sys::path::rend(RealPathName); - int Cnt = 0; - bool SuggestReplacement = false; - // Below is a best-effort to handle ".." in paths. It is admittedly - // not 100% correct in the presence of symlinks. - for (auto &Component : llvm::reverse(Components)) { - if ("." == Component) { - } else if (".." == Component) { - ++Cnt; - } else if (Cnt) { - --Cnt; - } else if (RealPathComponentIter != RealPathComponentEnd) { - if (Component != *RealPathComponentIter) { - // If these path components differ by more than just case, then we - // may be looking at symlinked paths. Bail on this diagnostic to avoid - // noisy false positives. - SuggestReplacement = RealPathComponentIter->equals_lower(Component); - if (!SuggestReplacement) - break; - Component = *RealPathComponentIter; - } - ++RealPathComponentIter; - } - } - return SuggestReplacement; -} - /// HandleIncludeDirective - The "\#include" tokens have just been read, read /// the file to be included from the lexer, then include it! This is a common /// routine with functionality shared between \#include, \#include_next and @@ -1946,39 +1831,6 @@ void Preprocessor::HandleIncludeDirectiv // FIXME: If we have a suggested module, and we've already visited this file, // don't bother entering it again. We know it has no further effect. - // Issue a diagnostic if the name of the file on disk has a different case - // than the one we're about to open. - const bool CheckIncludePathPortability = - File && !File->tryGetRealPathName().empty(); - - if (CheckIncludePathPortability) { - StringRef Name = LangOpts.MSVCCompat ? NormalizedPath.str() : Filename; - StringRef RealPathName = File->tryGetRealPathName(); - SmallVector<StringRef, 16> Components(llvm::sys::path::begin(Name), - llvm::sys::path::end(Name)); - - if (trySimplifyPath(Components, RealPathName)) { - SmallString<128> Path; - Path.reserve(Name.size()+2); - Path.push_back(isAngled ? '<' : '"'); - for (auto Component : Components) { - Path.append(Component); - // Append the separator the user used, or the close quote - Path.push_back( - Path.size() <= Filename.size() ? Filename[Path.size()-1] : - (isAngled ? '>' : '"')); - } - auto Replacement = Path.str().str(); - // For user files and known standard headers, by default we issue a diagnostic. - // For other system headers, we don't. They can be controlled separately. - auto DiagId = (FileCharacter == SrcMgr::C_User || warnByDefaultOnWrongCase(Name)) ? - diag::pp_nonportable_path : diag::pp_nonportable_system_path; - SourceRange Range(FilenameTok.getLocation(), CharEnd); - Diag(FilenameTok, DiagId) << Replacement << - FixItHint::CreateReplacement(Range, Replacement); - } - } - // Ask HeaderInfo if we should enter this #include file. If not, #including // this file will have no effect. if (ShouldEnter && Removed: cfe/trunk/test/Lexer/Inputs/case-insensitive-include.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/Inputs/case-insensitive-include.h?rev=272571&view=auto ============================================================================== --- cfe/trunk/test/Lexer/Inputs/case-insensitive-include.h (original) +++ cfe/trunk/test/Lexer/Inputs/case-insensitive-include.h (removed) @@ -1,8 +0,0 @@ -#ifndef CASE_INSENSITIVE_INCLUDE_H -#define CASE_INSENSITIVE_INCLUDE_H - -struct S { - int x; -}; - -#endif Removed: cfe/trunk/test/Lexer/case-insensitive-include-ms.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/case-insensitive-include-ms.c?rev=272571&view=auto ============================================================================== --- cfe/trunk/test/Lexer/case-insensitive-include-ms.c (original) +++ cfe/trunk/test/Lexer/case-insensitive-include-ms.c (removed) @@ -1,18 +0,0 @@ -// REQUIRES: case-insensitive-filesystem - -// RUN: mkdir -p %T/apath -// RUN: cp %S/Inputs/case-insensitive-include.h %T -// RUN: cd %T -// RUN: %clang_cc1 -fsyntax-only -fms-compatibility %s -include %s -I %T -verify -// RUN: %clang_cc1 -fsyntax-only -fms-compatibility -fdiagnostics-parseable-fixits %s -include %s -I %T 2>&1 | FileCheck %s - -#include "..\Output\.\case-insensitive-include.h" -#include "..\Output\.\Case-Insensitive-Include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:50}:"\"..\\Output\\.\\case-insensitive-include.h\"" -#include "..\output\.\case-insensitive-include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:50}:"\"..\\Output\\.\\case-insensitive-include.h\"" - -#include "apath\..\.\case-insensitive-include.h" -#include "apath\..\.\Case-Insensitive-Include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:49}:"\"apath\\..\\.\\case-insensitive-include.h\"" -#include "APath\..\.\case-insensitive-include.h" // For the sake of efficiency, this case is not diagnosed. :-( Removed: cfe/trunk/test/Lexer/case-insensitive-include.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/case-insensitive-include.c?rev=272571&view=auto ============================================================================== --- cfe/trunk/test/Lexer/case-insensitive-include.c (original) +++ cfe/trunk/test/Lexer/case-insensitive-include.c (removed) @@ -1,35 +0,0 @@ -// REQUIRES: case-insensitive-filesystem - -// RUN: mkdir -p %T/apath -// RUN: mkdir -p %T/asystempath -// RUN: cp %S/Inputs/case-insensitive-include.h %T -// RUN: cp %S/Inputs/case-insensitive-include.h %T/asystempath/case-insensitive-include2.h -// RUN: cd %T -// RUN: %clang_cc1 -fsyntax-only %s -include %s -I %T -isystem %T/asystempath -verify -// RUN: %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits %s -include %s -I %T -isystem %T/asystempath 2>&1 | FileCheck %s - -// Known standard header, so warn: -#include <StdDef.h> // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:20}:"<stddef.h>" - -#include "case-insensitive-include.h" -#include "Case-Insensitive-Include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:38}:"\"case-insensitive-include.h\"" - -#include "../Output/./case-insensitive-include.h" -#include "../Output/./Case-Insensitive-Include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:50}:"\"../Output/./case-insensitive-include.h\"" -#include "../output/./case-insensitive-include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:50}:"\"../Output/./case-insensitive-include.h\"" - -#include "apath/.././case-insensitive-include.h" -#include "apath/.././Case-Insensitive-Include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:49}:"\"apath/.././case-insensitive-include.h\"" -#include "APath/.././case-insensitive-include.h" // For the sake of efficiency, this case is not diagnosed. :-( - -#include "../Output/./apath/.././case-insensitive-include.h" -#include "../Output/./APath/.././case-insensitive-include.h" // For the sake of efficiency, this case is not diagnosed. :-( -#include "../output/./apath/.././case-insensitive-include.h" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:61}:"\"../Output/./apath/.././case-insensitive-include.h\"" - -#include "CASE-INSENSITIVE-INCLUDE2.H" // Found in an -isystem directory. No warning. Removed: cfe/trunk/test/Lexer/case-insensitive-system-include.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Lexer/case-insensitive-system-include.c?rev=272571&view=auto ============================================================================== --- cfe/trunk/test/Lexer/case-insensitive-system-include.c (original) +++ cfe/trunk/test/Lexer/case-insensitive-system-include.c (removed) @@ -1,10 +0,0 @@ -// REQUIRES: case-insensitive-filesystem - -// RUN: mkdir -p %T/asystempath -// RUN: cp %S/Inputs/case-insensitive-include.h %T/asystempath/ -// RUN: cd %T -// RUN: %clang_cc1 -fsyntax-only %s -include %s -isystem %T/asystempath -verify -Wnonportable-system-include-path -// RUN: %clang_cc1 -fsyntax-only -fdiagnostics-parseable-fixits %s -include %s -isystem %T/asystempath -Wnonportable-system-include-path 2>&1 | FileCheck %s - -#include "CASE-INSENSITIVE-INCLUDE.H" // expected-warning {{non-portable path}} -// CHECK: fix-it:"{{.*}}":{[[@LINE-1]]:10-[[@LINE-1]]:38}:"\"case-insensitive-include.h\"" Modified: cfe/trunk/test/PCH/case-insensitive-include.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/PCH/case-insensitive-include.c?rev=272572&r1=272571&r2=272572&view=diff ============================================================================== --- cfe/trunk/test/PCH/case-insensitive-include.c (original) +++ cfe/trunk/test/PCH/case-insensitive-include.c Mon Jun 13 13:32:30 2016 @@ -2,7 +2,7 @@ // Test this without pch. // RUN: cp %S/Inputs/case-insensitive-include.h %T -// RUN: %clang_cc1 -Wno-nonportable-include-path -fsyntax-only %s -include %s -I %T -verify +// RUN: %clang_cc1 -fsyntax-only %s -include %s -I %T -verify // Test with pch. // RUN: %clang_cc1 -emit-pch -o %t.pch %s -I %T _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits