GCC Wikia
Advertisement

このページを編集する際は,編集に関する方針に従ってください.[]

概要[]

引数[]

実装[]

*BIND_EXPRなどはenum tree_code

 189 /* Return true if T looks like a valid GIMPLE statement.  */
190 
191 bool
192 is_gimple_stmt (tree t)
193 {
194   enum tree_code code = TREE_CODE (t);
195 
 1はtrue
196   if (IS_EMPTY_STMT (t))
197     return 1;
198 
199   switch (code)
200     {
201     case BIND_EXPR:
202     case COND_EXPR:
 203       /* These are only valid if they're void.  */
204       return TREE_TYPE (t) == NULL || VOID_TYPE_P (TREE_TYPE (t));
205 
206     case SWITCH_EXPR:
207     case GOTO_EXPR:
208     case RETURN_EXPR:
209     case LABEL_EXPR:
210     case CASE_LABEL_EXPR:
211     case TRY_CATCH_EXPR:
212     case TRY_FINALLY_EXPR:
213     case EH_FILTER_EXPR:
214     case CATCH_EXPR:
215     case ASM_EXPR:
216     case RESX_EXPR:
217     case PHI_NODE:
218     case STATEMENT_LIST:
 219       /* These are always void.  */
220       return true;
221 
222     case CALL_EXPR:
223     case MODIFY_EXPR:
 224       /* These are valid regardless of their type.  */
225       return true;
226 
227     default:
228       return false;
229     }
230 }


リンク元

Advertisement