]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
AVR: target/113156 - Fix ICE due to missing "Save" on -m[long-]double= options.
authorAndrew Pinski <quic_apinski@quicinc.com>
Mon, 15 Jan 2024 09:31:36 +0000 (10:31 +0100)
committerGeorg-Johann Lay <avr@gjlay.de>
Mon, 15 Jan 2024 09:41:53 +0000 (10:41 +0100)
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.

gcc/config/avr/avr.opt

index ee0b40603f09762a9a336d4d1a31e272c44dc6c5..c9f2b4d2fe55ae401567f6a62b27f508de814609 100644 (file)
@@ -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=<BITS>        Use <BITS> 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=<BITS>   Use <BITS> bits wide long double type.
 
 nodevicelib