llvm-project/clang/lib/Frontend
Ben Langmuir 67a84ec810 [clang] Cleanup ASTContext before output files in crash recovery for modules
When we recover from a crash in a module compilation thread, we need to
ensure any output streams owned by the ASTConsumer (e.g. in
RawPCHContainerGenerator) are deleted before we call clearOutputFiles().
This has the same theoretical issues with proxy streams that Duncan
discusses in the commit 2d13386783. In practice, this was observed
as a use-after-free crash on a downstream branch that uses such a proxy
stream in this code path. Add an assertion so it won't regress.

Differential Revision: https://reviews.llvm.org/D129220

rdar://96525032
2022-07-07 10:23:57 -07:00
..
Rewrite [Clang] Rename StringLiteral::isAscii() => isOrdinary() [NFC] 2022-06-29 18:28:51 +02:00
ASTConsumers.cpp [clang] Fix JSON AST output when a filter is used 2021-10-10 07:46:17 +05:30
ASTMerge.cpp
ASTUnit.cpp [clang] Don't use Optional::getValue (NFC) 2022-06-20 22:59:26 -07:00
CMakeLists.txt [clang][extract-api] Add global record support 2022-03-16 15:13:55 -07:00
ChainedDiagnosticConsumer.cpp
ChainedIncludesSource.cpp
CompilerInstance.cpp [clang] Cleanup ASTContext before output files in crash recovery for modules 2022-07-07 10:23:57 -07:00
CompilerInvocation.cpp [clang] Don't use Optional::hasValue (NFC) 2022-06-25 22:26:24 -07:00
CreateInvocationFromCommandLine.cpp [clang][driver] Introduce new -fdriver-only flag 2022-06-13 13:30:56 +02:00
DependencyFile.cpp [Lex] Introduce `PPCallbacks::LexedFileChanged()` preprocessor callback 2022-07-01 14:22:31 -07:00
DependencyGraph.cpp [clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective() 2022-04-14 10:46:12 +02:00
DiagnosticRenderer.cpp [clang][Frontend] Fix a crash in DiagnosticRenderer. 2021-02-17 09:02:49 +01:00
FrontendAction.cpp [clang] Cleanup ASTContext before output files in crash recovery for modules 2022-07-07 10:23:57 -07:00
FrontendActions.cpp [Tooling/DependencyScanning & Preprocessor] Refactor dependency scanning to produce pre-lexed preprocessor directive tokens, instead of minimized sources 2022-05-26 12:50:06 -07:00
FrontendOptions.cpp [C++20][Modules][Driver][HU 1/N] Initial handling for -xc++-{system,user}-header. 2022-04-22 09:24:29 +01:00
HeaderIncludeGen.cpp [clang] Inclusive language: change instances of blacklist/whitelist to allowlist/ignorelist 2021-11-12 15:46:16 +00:00
InitPreprocessor.cpp [clang] Don't use Optional::hasValue (NFC) 2022-06-25 22:26:24 -07:00
InterfaceStubFunctionsConsumer.cpp [ifs] Prepare llvm-ifs for elfabi/ifs merging. 2021-07-19 11:23:00 -07:00
LayoutOverrideSource.cpp [Driver, Frontend] Use StringRef::contains (NFC) 2021-10-19 08:54:02 -07:00
LogDiagnosticPrinter.cpp Remove a few effectively-unused FileEntry APIs. NFC 2022-04-07 16:45:47 +02:00
ModuleDependencyCollector.cpp [clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective() 2022-04-14 10:46:12 +02:00
MultiplexConsumer.cpp [Clang] Override method ModuleImportRead in MultiplexASTDeserializationListener 2022-04-11 08:38:37 -04:00
PrecompiledPreamble.cpp [Frontend] when attaching a preamble, don't generate the long predefines buffer. 2022-05-09 15:55:32 +02:00
PrintPreprocessedOutput.cpp [clang][lex] NFCI: Use FileEntryRef in PPCallbacks::InclusionDirective() 2022-04-14 10:46:12 +02:00
SerializedDiagnosticPrinter.cpp [clang] Remove redundant member initialization (NFC) 2022-01-02 10:20:23 -08:00
SerializedDiagnosticReader.cpp
TestModuleFileExtension.cpp [NFC][clang] Return underlying strings directly instead of OS.str() 2021-12-09 16:05:46 -08:00
TestModuleFileExtension.h [modules] Use `HashBuilder` and `MD5` for the module hash. 2021-09-03 11:13:36 -07:00
TextDiagnostic.cpp Remove a few effectively-unused FileEntry APIs. NFC 2022-04-07 16:45:47 +02:00
TextDiagnosticBuffer.cpp
TextDiagnosticPrinter.cpp [clang-cl] Remove the /fallback option 2021-02-04 10:33:16 +01:00
VerifyDiagnosticConsumer.cpp [clang][lex] NFC: Simplify calls to `LookupFile` 2022-01-18 16:02:18 +01:00