Index: cfe/trunk/lib/Lex/HeaderSearch.cpp =================================================================== --- cfe/trunk/lib/Lex/HeaderSearch.cpp +++ cfe/trunk/lib/Lex/HeaderSearch.cpp @@ -648,7 +648,7 @@ ++I; } - return FoundComp >= 2; + return !FrameworkName.empty() && FoundComp >= 2; } static void Index: cfe/trunk/test/Modules/Inputs/double-quotes/NotAFramework/Headers/Headers/Thing1.h =================================================================== --- cfe/trunk/test/Modules/Inputs/double-quotes/NotAFramework/Headers/Headers/Thing1.h +++ cfe/trunk/test/Modules/Inputs/double-quotes/NotAFramework/Headers/Headers/Thing1.h @@ -0,0 +1 @@ +#include "Thing2.h" Index: cfe/trunk/test/Modules/Inputs/double-quotes/NotAFramework/Headers/Headers/Thing2.h =================================================================== --- cfe/trunk/test/Modules/Inputs/double-quotes/NotAFramework/Headers/Headers/Thing2.h +++ cfe/trunk/test/Modules/Inputs/double-quotes/NotAFramework/Headers/Headers/Thing2.h @@ -0,0 +1 @@ +// Empty file! Index: cfe/trunk/test/Modules/double-quotes.m =================================================================== --- cfe/trunk/test/Modules/double-quotes.m +++ cfe/trunk/test/Modules/double-quotes.m @@ -32,6 +32,9 @@ #import "A.h" #import +// Make sure we correctly handle paths that resemble frameworks, but aren't. +#import "NotAFramework/Headers/Headers/Thing1.h" + int bar() { return foo(); } // expected-warning@Inputs/double-quotes/A.framework/Headers/A.h:1{{double-quoted include "A0.h" in framework header, expected angle-bracketed instead}}