GCC Wikia
Advertisement

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

概要[]

ggc-zone.c[]

*実装[]

232 typedef unsigned int mark_type;


ipa-type-escpae.c[]

*引数[]

  • tree type
  • enum escape_t escape_status

*実装[]

460 /* Add TYPE to the suspect type set. Return true if the bit needed to
461    be marked.  */

462 463 static tree 464 mark_type (tree type, enum escape_t escape_status) 465 { 466 bitmap map = NULL; 467 int uid; 468 469 type = get_canon_type (type, true, true); 470 if (!type) 471 return NULL; 472 473 switch (escape_status) 474 { 475 case [[EXPOSED_PARAMETER>enum escape_t]]: 476 map = global_types_exposed_parameter; 477 break; 478 case [[FULL_ESCAPE>enum escape_t]]: 479 map = global_types_full_escape; 480 break; 481 } 482 483 uid = TYPE_UID (type); 484 if (bitmap_bit_p (map, uid)) 485 return type; 486 else 487 { 488 bitmap_set_bit (map, uid); 489 if (escape_status == [[FULL_ESCAPE>enum escape_t]]) 490 {

491           /* Efficiency hack. When things are bad, do not mess around
492              with this type anymore.  */

493 bitmap_set_bit (global_types_exposed_parameter, uid); 494 } 495 } 496 return type; 497 }


リンク元

Advertisement