This flag is used by avr-gcc (starting with v10) to set the width of the double type. The double type is by default interpreted as a 32-bit floating point number in avr-gcc instead of a 64-bit floating point number as is common on other architectures. Starting with GCC 10, a new option has been added to control this behavior: https://gcc.gnu.org/wiki/avr-gcc#Deviations_from_the_Standard This commit keeps the default double at 32 bits but adds support for the -mdouble flag (-mdouble=32 and -mdouble=64) to control this behavior. Differential Revision: https://reviews.llvm.org/D76181
14 lines
530 B
C
14 lines
530 B
C
// RUN: %clang_cc1 %s -emit-llvm -o - -triple=avr-unknown-unknown -mdouble=64 | \
|
|
// RUN: FileCheck --check-prefix=AVR-FP64 %s
|
|
// RUN: %clang_cc1 %s -emit-llvm -o - -triple=avr-unknown-unknown -mdouble=32 | \
|
|
// RUN: FileCheck --check-prefix=AVR-FP32 %s
|
|
|
|
double x = 0;
|
|
int size = sizeof(x);
|
|
|
|
// FIXME: the double should have an alignment of 1 on AVR, not 4 or 8.
|
|
// AVR-FP64: @x = global double {{.*}}, align 8
|
|
// AVR-FP64: @size = global i16 8
|
|
// AVR-FP32: @x = global float {{.*}}, align 4
|
|
// AVR-FP32: @size = global i16 4
|