This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Fix altivec-7.C testsuite failure due to vector name mangling.


Hi, all -

We recently built a compiler with a default -fabi-version value that's
different from the 2 that's used as default on trunk.  The result of
this was a test failure in g++.dg/ext/altivec-7.C, which compiles a
bunch of empty functions with vector arguments and inspects the
generated assembly for the mangled names.

The failure is because the test is searching for mangled names of the
form "_Z3fooU8__vectorh", which are only generated by ABI versions 1,
2, and 3.  As noted in the documentation, "Version 4, which first
appeared in G++ 4.5, implements a standard mangling for vector types";
this standard mangling looks like "_Z3fooDv16_h" instead.

This patch fixes the failure by adjusting the test to look for the
names using the standard mangling.  It passes with all ABI versions;
the compiler always emits the standard symbols, and with versions 1,
2, and 3 it also emits duplicate symbols with the old mangling.

Ok to commit?

(An alternate approach would be to force -mabi-version=2, and check
for the presence of both sets of symbols.  That seems overkill to me,
but I can alter the test to do that if desired.)

Thanks,
- Brooks


----
2013-10-11  Brooks Moses  <bmoses@google.com>

        * g++.dg/ext/altivec-7.C: Check for standard vector-type
         name mangling.

Attachment: 2013-10-11_altivec-7-fix.diff
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]