From: Andrew Pinski Date: Mon, 15 Jan 2024 09:31:36 +0000 (+0100) Subject: AVR: target/113156 - Fix ICE due to missing "Save" on -m[long-]double= options. X-Git-Tag: basepoints/gcc-15~2899 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f1b0b1e4454d160564090a4cc1fa649ccefdcb1e;p=thirdparty%2Fgcc.git AVR: target/113156 - Fix ICE due to missing "Save" on -m[long-]double= options. Multilib options -mdouble= and -mlong-double= are not orthogonal: TARGET_HANDLE_OPTION = avr-common.cc::avr_handle_option() sets them such that sizeof(double) <= sizeof(long double) is always true. gcc/ PR target/113156 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag. (-mbranch-cost): Set "Optimization" flag. --- diff --git a/gcc/config/avr/avr.opt b/gcc/config/avr/avr.opt index ee0b40603f09..c9f2b4d2fe55 100644 --- a/gcc/config/avr/avr.opt +++ b/gcc/config/avr/avr.opt @@ -27,7 +27,7 @@ Target RejectNegative Joined Var(avr_mmcu) MissingArgError(missing device or arc -mmcu=MCU Select the target MCU. mgas-isr-prologues -Target Var(avr_gasisr_prologues) UInteger Init(0) Optimization +Target Var(avr_gasisr_prologues) UInteger Init(0) Optimization Allow usage of __gcc_isr pseudo instructions in ISR prologues and epilogues. mn-flash= @@ -61,7 +61,7 @@ Target RejectNegative Mask(NO_INTERRUPTS) Change the stack pointer without disabling interrupts. mbranch-cost= -Target Joined RejectNegative UInteger Var(avr_branch_cost) Init(0) +Target Joined RejectNegative UInteger Var(avr_branch_cost) Init(0) Optimization Set the branch costs for conditional branch instructions. Reasonable values are small, non-negative integers. The default branch cost is 0. mmain-is-OS_task @@ -124,11 +124,11 @@ Target Mask(ABSDATA) Assume that all data in static storage can be accessed by LDS / STS. This option is only useful for reduced Tiny devices. mdouble= -Target Joined RejectNegative Var(avr_double) Init(0) Enum(avr_bits_e) +Target Joined RejectNegative Var(avr_double) Init(0) Enum(avr_bits_e) Save -mdouble= Use bits wide double type. mlong-double= -Target Joined RejectNegative Var(avr_long_double) Init(0) Enum(avr_bits_e) +Target Joined RejectNegative Var(avr_long_double) Init(0) Enum(avr_bits_e) Save -mlong-double= Use bits wide long double type. nodevicelib