diff options
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 64dda04..19ed577 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -318,7 +318,12 @@ typedef struct reorder_block_def /* Partitions, to be used when partitioning hot and cold basic blocks into separate sections. */ #define BB_PARTITION(bb) ((bb)->flags & (BB_HOT_PARTITION|BB_COLD_PARTITION)) -#define BB_SET_PARTITION(bb, part) ((bb)->flags |= (part)) +#define BB_SET_PARTITION(bb, part) do { \ + basic_block bb_ = (bb); \ + bb_->flags = ((bb_->flags & ~(BB_HOT_PARTITION|BB_COLD_PARTITION)) \ + | (part)); \ +} while (0) + #define BB_COPY_PARTITION(dstbb, srcbb) \ BB_SET_PARTITION (dstbb, BB_PARTITION (srcbb)) |