Given the following code: float abc(float a, float b) { return ((a - b) * 0.1); }
Compiled with the -mno-sdata flag, the compiler still defines an .sdata item for the floating constant 0.1, which causes problems for embedded systems that rely on -mno-sdata meaning NO .sdata This bug can be circumvented as follows: float abc(float a, float b) { static float r = 0.1; return ((a - b) * r); } -- Summary: Compiler generates .sdata when -mno-sdata specified Product: gcc Version: 3.4.5 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jsworley at qwest dot net GCC build triplet: ia64-unknown-linux-gnu GCC host triplet: ia64-redhat-linux GCC target triplet: ia64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27051