c-GCC:哪些目标支持定点类型


$ echo "_Fract x;" | gcc -xc -
<stdin>:1:1: error: fixed-point types not supported for this target

6.16固定点类型(增加重点(:

作为一个扩展,GNU C支持ISO/IEC DTR 18037的N1169草案中定义的定点类型。GCC中对定点类型的支持将随着技术报告草案的变化而变化。为任何目标调用约定也可能发生变化并非所有目标都支持定点类型

问题:哪些目标支持定点类型?

额外:有记录吗?如何从GCC的源代码中派生它?


UPD。可能有用:Clang确实通过选项-ffixed-point:支持定点类型

$ echo "_Fract x;" | clang -xc - -c -ffixed-point
# OK

我可以确认AVR上的GCC 11.2.0确实支持定点类型。尺寸为:

sizeof(signed   short _Fract) == 1
sizeof(unsigned short _Fract) == 1
sizeof(signed   _Fract) == 2
sizeof(unsigned _Fract) == 2
sizeof(signed   long _Fract) == 4
sizeof(unsigned long _Fract) == 4
sizeof(signed   long long _Fract) == 8
sizeof(unsigned long long _Fract) == 8
sizeof(signed   short _Accum) == 2
sizeof(unsigned short _Accum) == 2
sizeof(signed   _Accum) == 4
sizeof(unsigned _Accum) == 4
sizeof(signed   long _Accum) == 8
sizeof(unsigned long _Accum) == 8
sizeof(signed   long long _Accum) == 8
sizeof(unsigned long long _Accum) == 8

最新更新