diff options
Diffstat (limited to 'gcc/rtl.c')
-rw-r--r-- | gcc/rtl.c | 32 |
1 files changed, 23 insertions, 9 deletions
@@ -331,13 +331,13 @@ copy_rtx (orig) /* We do not copy the USED flag, which is used as a mark bit during walks over the RTL. */ - copy->used = 0; + RTX_FLAG (copy, used) = 0; /* We do not copy FRAME_RELATED for INSNs. */ if (GET_RTX_CLASS (code) == 'i') - copy->frame_related = 0; - copy->jump = orig->jump; - copy->call = orig->call; + RTX_FLAG (copy, frame_related) = 0; + RTX_FLAG (copy, jump) = RTX_FLAG (orig, jump); + RTX_FLAG (copy, call) = RTX_FLAG (orig, call); format_ptr = GET_RTX_FORMAT (GET_CODE (copy)); @@ -390,11 +390,11 @@ shallow_copy_rtx (orig) rtx copy = rtx_alloc (code); PUT_MODE (copy, GET_MODE (orig)); - copy->in_struct = orig->in_struct; - copy->volatil = orig->volatil; - copy->unchanging = orig->unchanging; - copy->integrated = orig->integrated; - copy->frame_related = orig->frame_related; + RTX_FLAG (copy, in_struct) = RTX_FLAG (orig, in_struct); + RTX_FLAG (copy, volatil) = RTX_FLAG (orig, volatil); + RTX_FLAG (copy, unchanging) = RTX_FLAG (orig, unchanging); + RTX_FLAG (copy, integrated) = RTX_FLAG (orig, integrated); + RTX_FLAG (copy, frame_related) = RTX_FLAG (orig, frame_related); for (i = 0; i < GET_RTX_LENGTH (code); i++) copy->fld[i] = orig->fld[i]; @@ -637,3 +637,17 @@ rtvec_check_failed_bounds (r, n, file, line, func) n, GET_NUM_ELEM (r) - 1, func, trim_filename (file), line); } #endif /* ENABLE_RTL_CHECKING */ + +#if defined ENABLE_RTL_FLAG_CHECKING +void +rtl_check_failed_flag (r, file, line, func) + rtx r; + const char *file; + int line; + const char *func; +{ + internal_error + ("RTL flag check: access macro used with unexpected rtx code `%s' in %s, at %s:%d", + GET_RTX_NAME (GET_CODE (r)), func, trim_filename (file), line); +} +#endif /* ENABLE_RTL_FLAG_CHECKING */ |