On 12/30/18 4:51 AM, Jozef Lawrynowicz wrote: > There have been some ICEs in the past for msp430-elf with the large > memory model (20-bit pointers), caused by SET_{DECL,TYPE}_ALIGN being called > with an argument which resolves to 20 i.e. POINTER_SIZE, > or the default value of TARGET_VTABLE_ENTRY_ALIGN (which is POINTER_SIZE). > > The attached patch adds an assertion that SET_{DECL,TYPE}_ALIGN is called with > a value which is a power of 2, or 0, for targets which support a partial int > mode. This should catch issues in the future with non-power of 2 > alignments being set, which could propagate into serious problems later in the > compilation process. > > If the filtering to only perform this check for targets supporting a partial > int mode is unnecessary, I can remove that so CHECK_POW2_OR_ZEROP always > expands to check_pow2_or_zerop. > > Successfully bootstrapped and regtested on x86_64-pc-linux-gnu and > msp430-elf/-mlarge. > > Ok for trunk, or does this have to wait for GCC10 Stage 1? > Let's defer to gcc-10.
I'm not sure it's worth trying to conditionalize this on the partial integer modes. Why not just do it all the time? I'd be surprised if it's that expensive. jeff