diff --git a/clang/include/clang/Basic/DiagnosticCommonKinds.td b/clang/include/clang/Basic/DiagnosticCommonKinds.td --- a/clang/include/clang/Basic/DiagnosticCommonKinds.td +++ b/clang/include/clang/Basic/DiagnosticCommonKinds.td @@ -282,6 +282,9 @@ "file '%0' modified since it was first processed">, DefaultFatal; def err_file_too_large : Error< "sorry, unsupported: file '%0' is too large for Clang to process">; +def err_include_too_large : Error< + "sorry, this include generates a translation unit too large for" + " Clang to process.">, DefaultFatal; def err_unsupported_bom : Error<"%0 byte order mark detected in '%1', but " "encoding is not supported">, DefaultFatal; def err_unable_to_rename_temp : Error< diff --git a/clang/include/clang/Lex/Preprocessor.h b/clang/include/clang/Lex/Preprocessor.h --- a/clang/include/clang/Lex/Preprocessor.h +++ b/clang/include/clang/Lex/Preprocessor.h @@ -2203,12 +2203,14 @@ ModuleBegin, ModuleImport, SkippedModuleImport, + Failure, } Kind; Module *ModuleForHeader = nullptr; ImportAction(ActionKind AK, Module *Mod = nullptr) : Kind(AK), ModuleForHeader(Mod) { - assert((AK == None || Mod) && "no module for module action"); + assert((AK == None || Mod || AK == Failure) && + "no module for module action"); } }; diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -577,13 +577,15 @@ SLocEntryLoaded[Index] = true; return FileID::get(LoadedID); } + unsigned FileSize = File->getSize(); + if (!(NextLocalOffset + FileSize + 1 > NextLocalOffset && + NextLocalOffset + FileSize + 1 <= CurrentLoadedOffset)) { + Diag.Report(IncludePos, diag::err_include_too_large); + return FileID(); + } LocalSLocEntryTable.push_back( SLocEntry::get(NextLocalOffset, FileInfo::get(IncludePos, File, FileCharacter, Filename))); - unsigned FileSize = File->getSize(); - assert(NextLocalOffset + FileSize + 1 > NextLocalOffset && - NextLocalOffset + FileSize + 1 <= CurrentLoadedOffset && - "Ran out of source locations!"); // We do a +1 here because we want a SourceLocation that means "the end of the // file", e.g. for the "no newline at the end of the file" diagnostic. NextLocalOffset += FileSize + 1; diff --git a/clang/lib/Lex/PPDirectives.cpp b/clang/lib/Lex/PPDirectives.cpp --- a/clang/lib/Lex/PPDirectives.cpp +++ b/clang/lib/Lex/PPDirectives.cpp @@ -1708,6 +1708,13 @@ EnterAnnotationToken(SourceRange(HashLoc, EndLoc), tok::annot_module_include, Action.ModuleForHeader); break; + case ImportAction::Failure: + assert(TheModuleLoader.HadFatalFailure && + "This should be an early exit only to a fatal error"); + TheModuleLoader.HadFatalFailure = true; + IncludeTok.setKind(tok::eof); + CurLexer->cutOffLexing(); + return; } } @@ -2165,7 +2172,10 @@ if (IncludePos.isMacroID()) IncludePos = SourceMgr.getExpansionRange(IncludePos).getEnd(); FileID FID = SourceMgr.createFileID(*File, IncludePos, FileCharacter); - assert(FID.isValid() && "Expected valid file ID"); + if (!FID.isValid()) { + TheModuleLoader.HadFatalFailure = true; + return ImportAction::Failure; + } // If all is good, enter the new file! if (EnterSourceFile(FID, CurDir, FilenameTok.getLocation())) diff --git a/clang/lib/Lex/Preprocessor.cpp b/clang/lib/Lex/Preprocessor.cpp --- a/clang/lib/Lex/Preprocessor.cpp +++ b/clang/lib/Lex/Preprocessor.cpp @@ -906,6 +906,9 @@ } } while (!ReturnedToken); + if (Result.is(tok::unknown) && TheModuleLoader.HadFatalFailure) + return; + if (Result.is(tok::code_completion) && Result.getIdentifierInfo()) { // Remember the identifier before code completion token. setCodeCompletionIdentifierInfo(Result.getIdentifierInfo()); @@ -1200,6 +1203,13 @@ Suffix[0].setAnnotationValue(Action.ModuleForHeader); // FIXME: Call the moduleImport callback? break; + case ImportAction::Failure: + assert(TheModuleLoader.HadFatalFailure && + "This should be an early exit only to a fatal error"); + Result.setKind(tok::eof); + CurLexer->cutOffLexing(); + EnterTokens(Suffix); + return true; } EnterTokens(Suffix); diff --git a/clang/test/Lexer/Inputs/inc1.h b/clang/test/Lexer/Inputs/inc1.h new file mode 100644 --- /dev/null +++ b/clang/test/Lexer/Inputs/inc1.h @@ -0,0 +1,1470 @@ +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" +#include "inc2.h" diff --git a/clang/test/Lexer/Inputs/inc2.h b/clang/test/Lexer/Inputs/inc2.h new file mode 100644 --- /dev/null +++ b/clang/test/Lexer/Inputs/inc2.h @@ -0,0 +1,1000 @@ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ +/*...............................................................................................*/ diff --git a/clang/test/Lexer/SourceLocationsOverflow.c b/clang/test/Lexer/SourceLocationsOverflow.c new file mode 100644 --- /dev/null +++ b/clang/test/Lexer/SourceLocationsOverflow.c @@ -0,0 +1,25 @@ +// RUN: not %clang %s -S -o - 2>&1 | FileCheck %s +// CHECK: In file included from {{.*}}SourceLocationsOverflow.c +// CHECK-NEXT: inc1.h{{.*}}: fatal error: sorry, this include generates a translation unit too large for Clang to process. +// CHECK-NEXT: #include "inc2.h" +// CHECK-NEXT: ^ +// CHECK-NEXT: 1 error generated. +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h" +#include "Inputs/inc1.h"