How to be sure of no floats


#1

Doing a cut-down version of the CGPS “QueryApp” sample, I want to be sure that I’ve removed all floating point - how can I confirm that?


#2

Search for float and double keywords. And also for specific printf formatter.


#3

Is that completely sufficient?

What if there were some literal floating point constants - like 2.0 or 0.5 - hidden away somewhere?
Would that cause FP to be used, even if the final result was stored to an integral value?


#4

It depends how you use them.

I’m pretty sure that

int x = 2.0;

would be optimised to

int x = 2;

However, anything of the form

int x = 10;
int y = x / 2.0;

will be calculated with floating point operations, and the result will be cast to an integer. Therefore you cannot rely on a simple source file search for float/double.

You would also have to consider what any libraries are doing. Can you be sure they don’t include floating point calculations?


#5

Yes, that’s the kind of thing I was concerned about!

Presumably, a search of the Map file should reveal if any FP functions have been included - if I knew what to look for…

I’m using GCC and M2MStudio 1.1.1 - what would be the key symbols to look for…?

Presumably this would also show up in a search of the Map file…?