Mercurial > hg > truffle
comparison src/share/vm/opto/compile.cpp @ 17895:31e28ee4c9b4
8038921: assert(t != NULL) failed: must set before get
Summary: Ignore nodes without a type when checking for speculative types in Compile::remove_speculative_types(...).
Reviewed-by: kvn, roland
Contributed-by: Tobias Hartmann <tobias.hartmann@oracle.com>
author | anoll |
---|---|
date | Wed, 23 Apr 2014 10:35:15 +0200 |
parents | 62c54fcc0a35 |
children | 3636afd5ec1a |
comparison
equal
deleted
inserted
replaced
17894:87b5e00100fe | 17895:31e28ee4c9b4 |
---|---|
3959 // Verify that after the IGVN is over no speculative type has resurfaced | 3959 // Verify that after the IGVN is over no speculative type has resurfaced |
3960 worklist.clear(); | 3960 worklist.clear(); |
3961 worklist.push(root()); | 3961 worklist.push(root()); |
3962 for (uint next = 0; next < worklist.size(); ++next) { | 3962 for (uint next = 0; next < worklist.size(); ++next) { |
3963 Node *n = worklist.at(next); | 3963 Node *n = worklist.at(next); |
3964 const Type* t = igvn.type(n); | 3964 const Type* t = igvn.type_or_null(n); |
3965 assert(t == t->remove_speculative(), "no more speculative types"); | 3965 assert((t == NULL) || (t == t->remove_speculative()), "no more speculative types"); |
3966 if (n->is_Type()) { | 3966 if (n->is_Type()) { |
3967 t = n->as_Type()->type(); | 3967 t = n->as_Type()->type(); |
3968 assert(t == t->remove_speculative(), "no more speculative types"); | 3968 assert(t == t->remove_speculative(), "no more speculative types"); |
3969 } | 3969 } |
3970 uint max = n->len(); | 3970 uint max = n->len(); |