aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/XCOFFObjectFile.cpp
diff options
context:
space:
mode:
authorArthur Eubanks <aeubanks@google.com>2022-09-21 09:04:06 -0700
committerArthur Eubanks <aeubanks@google.com>2022-09-21 09:50:00 -0700
commitf77342693b46e1ae7924a340128a5b14e4137b2e (patch)
tree8a442fb70019a4a013fb84dd0bcb4a98d348830b /llvm/lib/Object/XCOFFObjectFile.cpp
parentf3222be4fcb76e8c70aa8ebfb68ebf6ace1c6aee (diff)
downloadllvm-f77342693b46e1ae7924a340128a5b14e4137b2e.zip
llvm-f77342693b46e1ae7924a340128a5b14e4137b2e.tar.gz
llvm-f77342693b46e1ae7924a340128a5b14e4137b2e.tar.bz2
[CGSCC] Properly handle invalidating analyses for invalidated SCCs
Currently if we mark an SCC as invalid, if we haven't set UR.UpdatedC, we won't propagate the PreservedAnalyses up to the parent pass (adaptor/pass manager). In the provided test case, we inline the function into itself then delete it as it has no users. The SCC is marked as invalid without providing a replacement UR.UpdatedC. Then the CGSCC pass manager and adaptor discard the PreservedAnalyses. Instead, handle PreservedAnalyses first before bailing due to the invalid SCC. Fixes crashes due to out of date analyses.
Diffstat (limited to 'llvm/lib/Object/XCOFFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions