summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/InlineFunction.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-05-27 00:43:02 +0000
committerChris Lattner <sabre@nondot.org>2006-05-27 00:43:02 +0000
commit8f872d209133d19c7894904dcf59ef021cba7958 (patch)
treebfd1e25d83f36df398f46863c10514a5b531b31a /llvm/lib/Transforms/Utils/InlineFunction.cpp
parent608290c2991b07a25a5eb0b2a90c592c10f1d4cb (diff)
downloadbcm5719-llvm-8f872d209133d19c7894904dcf59ef021cba7958.tar.gz
bcm5719-llvm-8f872d209133d19c7894904dcf59ef021cba7958.zip
Fix a nasty dag combiner bug that caused nondeterminstic crashes (MY FAVORITE!):
SimplifySelectOps would eliminate a Select, delete it, then return true. The clients would see that it did something and return null. The top level would see a null return, and decide that nothing happened, proceeding to process the node in other ways: boom. The fix is simple: clients of SimplifySelectOps should return the select node itself. In order to catch really obnoxious boogs like this in the future, add an assert that nodes are not deleted. We do this by checking for a sentry node type that the SDNode dtor sets when a node is destroyed. llvm-svn: 28514
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud