I've committed this to avoid tripping over another ptx assembler problem.
memcpy is used for block move, and the FUNCTION_DECL for that is created
uniquely in expr.c. It's not linked up to any other decl for memcpy.
PTX requires declarations forexternal symbols, so we emit one for the blkmove
variant. We also emit a definition in this particular testcase, and the PTX
assembler complains that we've said both 'external', and 'definition'. Rather
than go through heroics for just this testcase, I skip it.
nathan
2015-08-25 Nathan Sidwell <nat...@acm.org>
* gcc.c-torture/execute/builtins/20010124-1.x: New.
Index: gcc.c-torture/execute/builtins/20010124-1.x
===================================================================
--- gcc.c-torture/execute/builtins/20010124-1.x (revision 0)
+++ gcc.c-torture/execute/builtins/20010124-1.x (working copy)
@@ -0,0 +1,10 @@
+load_lib target-supports.exp
+
+if [istarget "nvptx-*-*"] {
+ # This test uses memcpy for block move in the same file as it
+ # defines it. The two decls are not the same, by design, and we
+ # end up emitting a definition of memcpy, along with a .extern
+ # declaration. This confuses the ptx assembler.
+ return 1
+}
+return 0