forked from OSchip/llvm-project
Fix for pr31836 - pp_nonportable_path on absolute paths: broken delimiters
Summary: This is a patch for PR31836. As the bug replaces the path separators in the included file name with the characters following them, the test script makes sure that there's no "Ccase-insensitive-include-pr31836.h" in the warning message. Reviewers: rsmith, eric_niebler Reviewed By: eric_niebler Subscribers: karies, cfe-commits Differential Revision: https://reviews.llvm.org/D30000 llvm-svn: 295779
This commit is contained in:
parent
d4ba2f2336
commit
cc89bacabe
|
@ -1976,8 +1976,12 @@ void Preprocessor::HandleIncludeDirective(SourceLocation HashLoc,
|
|||
SmallString<128> Path;
|
||||
Path.reserve(Name.size()+2);
|
||||
Path.push_back(isAngled ? '<' : '"');
|
||||
bool isLeadingSeparator = llvm::sys::path::is_absolute(Name);
|
||||
for (auto Component : Components) {
|
||||
Path.append(Component);
|
||||
if (isLeadingSeparator)
|
||||
isLeadingSeparator = false;
|
||||
else
|
||||
Path.append(Component);
|
||||
// Append the separator the user used, or the close quote
|
||||
Path.push_back(
|
||||
Path.size() <= Filename.size() ? Filename[Path.size()-1] :
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
// REQUIRES: case-insensitive-filesystem
|
||||
// UNSUPPORTED: system-windows
|
||||
|
||||
// RUN: mkdir -p %T
|
||||
// RUN: touch %T/case-insensitive-include-pr31836.h
|
||||
// RUN: echo "#include \"%T/Case-Insensitive-Include-Pr31836.h\"" | %clang_cc1 -E - 2>&1 | FileCheck %s
|
||||
|
||||
// CHECK: warning: non-portable path to file
|
||||
// CHECK-SAME: /case-insensitive-include-pr31836.h
|
Loading…
Reference in New Issue