- } else if (get_opt_closed_world() &&
- is_Sel(ptr) &&
- get_irg_callee_info_state(irg) == irg_callee_info_consistent) {
- /* check if all possible callees are nothrow functions. */
- int i, n_callees = get_Call_n_callees(pred);
- if (n_callees == 0) {
- /* This is kind of strange: dying code or a Call that will raise an exception
- when executed as there is no implementation to call. So better not
- optimize. */
- curr_prop &= ~mtp_property_nothrow;
- continue;
- }
-
- for (i = 0; i < n_callees; ++i) {
- ir_entity *ent = get_Call_callee(pred, i);
- if (ent == unknown_entity) {
- /* we don't know which entity is called here */
- curr_prop &= ~mtp_property_nothrow;
- break;
- }
- if ((get_entity_additional_properties(ent) & mtp_property_nothrow) == 0) {
- curr_prop &= ~mtp_property_nothrow;
- break;
- }
- }
- /* if we pass the for cycle, nothrow is still ok */