This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Cannot compile with 64-bit floating point support disabled

Using compiler version v4.1.9, my application compiles as expected.  On upgrading to v4.3.3 I am now getting:

"#1558-D 64-bit floating point operations are not allowed" in ymath.h: __Dtest

As there is insufficient memory to include the double precision math functions I have deliberately set --float_operations_allowed=32 to ensure that I do not inadvertently use expressions where a float is promoted to a double.

Compiling with --float_operations_allowed=all works round the problem and, as far as I can tell, no 64bit floating point functions are included in the output.

It seems that the newer versions of ymath.h introduce an inline function that (while not actually used in my application) includes double precision operations.

I'd like to use the compiler option to enforce the 32bit only floating point restriction, but as far as I can tell, it is no longer possible with the current headers.

Is this a problem with the MSP430 libraries, or am I missing the point of this compiler option?

Regards

Phil

  • Phil S said:
    as far as I can tell, no 64bit floating point functions are included in the output.

    In the: “<configuration name>\project name>.map” file you can check if and how is using floating point operations.

  • Yes, thanks. That's how I have checked that it isn't really using 64 bit functions, but I still get the 64-bit not allowed errors.

    Since the compiler has a none/32/64/all switch, I was hoping to use it to enforce this without having to remember to manually check the link map. It used to work quite happily under v4.1.9 and now doesn't, so I'm wondering if it's a regression or whether there's some other option I now have to enable to get it working.

**Attention** This is a public forum