diff options
author | Zack Weinberg <zack@codesourcery.com> | 2004-08-25 07:25:06 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 2004-08-25 07:25:06 +0000 |
commit | 51a904c9e6cbce9225c8b584eff328e71afb049b (patch) | |
tree | 8f400171281f1971daae0f4f3bac980e43bf1e0e /gcc/basic-block.h | |
parent | 4c5f37d5682d0798751272b132b36dcd77f8ff9c (diff) | |
download | gcc-51a904c9e6cbce9225c8b584eff328e71afb049b.zip gcc-51a904c9e6cbce9225c8b584eff328e71afb049b.tar.gz gcc-51a904c9e6cbce9225c8b584eff328e71afb049b.tar.bz2 |
basic-block.h (BB_SET_PARTITION): Clear old value first.
* basic-block.h (BB_SET_PARTITION): Clear old value first.
* cfg.c (clear_bb_flags): Don't clear partition setting.
From-SVN: r86537
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)) |