GCC Bugzilla – Bug 12097
unimplemented: real-valued template parameters when cross-compiling
Last modified: 2005-07-23 22:49:57 UTC
This causes testcase g++.dg/abi/mangle17.C to fail. Should probably be marked as 'expected to fail when cross-compiling', or something like that.
Dan, what does the compiler say when you try to compile the code? Not doing a cross gives me these messages: tmp/g> ../build-gcc/gcc-install/bin/c++ -c mangle17.C -Wabi mangle17.C:8: warning: the mangled name of `void f(S<((I + e) + (int)(3.70000000000000017763568394002504646778106689453e+0))>) [with int I = 7]' will change in a future version of GCC mangle17.C:11: warning: the mangled name of `void g(S<((I + e) + (int)(3.70000000000000017763568394002504646778106689453e+0))>) [with int I = 7]' will change in a future version of GCC
See also http://gcc.gnu.org/ml/gcc/2003-06/msg00306.html This may be a dup of bug 8861
Here's what gcc-3.3.1 outputs when cross-compiling. (BTW gcc-3.4-20030813 outputs nothing, so I think this is fixed in the 3.4 tree.) /opt/cegl-2.0/powerpc-750-linux-gnu/gcc-3.3.1-glibc-2.3.2/bin/powerpc-750-linux-gnu-g++ -c -Wabi /home3/dank/ixia_tarballs/gcc-3.3.1/gcc/testsuite/g++.dg/abi/mangle17.C /home3/dank/ixia_tarballs/gcc-3.3.1/gcc/testsuite/g++.dg/abi/mangle17.C:8: warning: the mangled name of `void f(S<(e + (int)(3.70000000000000017763568394002504646778106689453e+0))>) [with int I = 7]' will change in a future version of GCC /home3/dank/ixia_tarballs/gcc-3.3.1/gcc/testsuite/g++.dg/abi/mangle17.C:11: warning: the mangled name of `void g(S<(e + (int)(3.70000000000000017763568394002504646778106689453e+0))>) [with int I = 7]' will change in a future version of GCC
So is the fact that present mainline doesn't give anything due to the patch Zack checked in (referred to by Mark in the follow-up to the mail you mentioned). If so, can we consider this as fixed and close the report? I'm not quite sure what you consider to be the problem, I assume you mean that the testcase fails on the branch and should be xfailed there, right? W.
I just verified that that test case doesn't fail in 3.4-20030813, so it seems clear this is fixed in 3.4. I have a feeling this isn't something that should be fixed for 3.3.2, so I'm just going to mark this as a dup of PR 8861. Apologies for not having found PR 8861 before filing this; I did search, but not well enough. *** This bug has been marked as a duplicate of 8861 ***
I don't think an ABI change would go through for 3.3.2. So if the test fails on the branch, feel free to post a patch to gcc-patches@gcc.gnu.org that xfails the test on the branch only. W.