Print this page
12166 resync smatch to 0.6.1-rc1-il-3


1078 {
1079         struct range_list *rl;
1080 
1081         get_absolute_rl(switch_expr, &rl);
1082 
1083         push_rl(&remaining_cases, rl);
1084         push_stree(&switch_stack, clone_stree(cur_stree));
1085 }
1086 
1087 int have_remaining_cases(void)
1088 {
1089         return !!top_rl(remaining_cases);
1090 }
1091 
1092 void __merge_switches(struct expression *switch_expr, struct range_list *case_rl)
1093 {
1094         struct stree *stree;
1095         struct stree *implied_stree;
1096 
1097         stree = pop_stree(&switch_stack);









1098         implied_stree = __implied_case_stree(switch_expr, case_rl, &remaining_cases, &stree);
1099         merge_stree(&cur_stree, implied_stree);
1100         free_stree(&implied_stree);
1101         push_stree(&switch_stack, stree);
1102 }
1103 
1104 void __discard_switches(void)
1105 {
1106         struct stree *stree;
1107 
1108         pop_rl(&remaining_cases);
1109         stree = pop_stree(&switch_stack);
1110         free_stree(&stree);
1111 }
1112 
1113 void __push_default(void)
1114 {
1115         push_stree(&default_stack, NULL);
1116 }
1117 




1078 {
1079         struct range_list *rl;
1080 
1081         get_absolute_rl(switch_expr, &rl);
1082 
1083         push_rl(&remaining_cases, rl);
1084         push_stree(&switch_stack, clone_stree(cur_stree));
1085 }
1086 
1087 int have_remaining_cases(void)
1088 {
1089         return !!top_rl(remaining_cases);
1090 }
1091 
1092 void __merge_switches(struct expression *switch_expr, struct range_list *case_rl)
1093 {
1094         struct stree *stree;
1095         struct stree *implied_stree;
1096 
1097         stree = pop_stree(&switch_stack);
1098         if (!stree) {
1099                 /*
1100                  * If the cur_stree was NULL before the start of the switch
1101                  * statement then we don't want to unnullify it.
1102                  *
1103                  */
1104                 push_stree(&switch_stack, stree);
1105                 return;
1106         }
1107         implied_stree = __implied_case_stree(switch_expr, case_rl, &remaining_cases, &stree);
1108         merge_stree(&cur_stree, implied_stree);
1109         free_stree(&implied_stree);
1110         push_stree(&switch_stack, stree);
1111 }
1112 
1113 void __discard_switches(void)
1114 {
1115         struct stree *stree;
1116 
1117         pop_rl(&remaining_cases);
1118         stree = pop_stree(&switch_stack);
1119         free_stree(&stree);
1120 }
1121 
1122 void __push_default(void)
1123 {
1124         push_stree(&default_stack, NULL);
1125 }
1126