diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-12-09 16:48:01 +0000 | 
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-12-09 16:48:01 +0000 | 
| commit | 5ca04bd4e70638da3918c9388b4169d85bcccc83 (patch) | |
| tree | 256b8ca66a56d44ea3a67436aa69c32454fbc6e8 /clang/lib | |
| parent | e32e054279766f16dd26e98a2db6e78dc1e20ba7 (diff) | |
| download | bcm5719-llvm-5ca04bd4e70638da3918c9388b4169d85bcccc83.tar.gz bcm5719-llvm-5ca04bd4e70638da3918c9388b4169d85bcccc83.zip  | |
When performing subframework header lookup, don't search for
".framework/" in the path name, because it could be ".framework\" on
Windows. This whole function needs to be rewritten with PathV2.
llvm-svn: 146261
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Lex/HeaderSearch.cpp | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Lex/HeaderSearch.cpp b/clang/lib/Lex/HeaderSearch.cpp index 0071ff533c9..8a73fb95658 100644 --- a/clang/lib/Lex/HeaderSearch.cpp +++ b/clang/lib/Lex/HeaderSearch.cpp @@ -535,6 +535,7 @@ LookupSubframeworkHeader(StringRef Filename,    assert(ContextFileEnt && "No context file?");    // Framework names must have a '/' in the filename.  Find it. +  // FIXME: Should we permit '\' on Windows?    size_t SlashPos = Filename.find('/');    if (SlashPos == StringRef::npos) return 0; @@ -542,12 +543,15 @@ LookupSubframeworkHeader(StringRef Filename,    const char *ContextName = ContextFileEnt->getName();    // If the context info wasn't a framework, couldn't be a subframework. -  const char *FrameworkPos = strstr(ContextName, ".framework/"); -  if (FrameworkPos == 0) +  const unsigned DotFrameworkLen = 10; +  const char *FrameworkPos = strstr(ContextName, ".framework"); +  if (FrameworkPos == 0 ||  +      (FrameworkPos[DotFrameworkLen] != '/' &&  +       FrameworkPos[DotFrameworkLen] != '\\'))      return 0;    llvm::SmallString<1024> FrameworkName(ContextName, -                                        FrameworkPos+strlen(".framework/")); +                                        FrameworkPos+DotFrameworkLen+1);    // Append Frameworks/HIToolbox.framework/    FrameworkName += "Frameworks/";  | 

