From 0a0f74aaf1d85e70813288ff27756d81bb555f5a Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Wed, 30 Dec 2015 15:52:59 +0000 Subject: [PATCH] nvptx.c (nvptx_assemble_undefined_decl): Check it's not a constant pool object. * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Check it's not a constant pool object. From-SVN: r232003 --- gcc/ChangeLog | 5 +++++ gcc/config/nvptx/nvptx.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1643888b2c8..332523c6242 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-12-30 Nathan Sidwell + + * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Check + it's not a constant pool object. + 2015-12-29 Michael Meissner * config/rs6000/rs6000.c (init_float128_ieee): Remove IEEE 128-bit diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 0f232a3641e..5f953a13a1f 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -1718,6 +1718,11 @@ nvptx_globalize_label (FILE *, const char *) static void nvptx_assemble_undefined_decl (FILE *file, const char *name, const_tree decl) { + /* The middle end can place constant pool decls into the varpool as + undefined. Until that is fixed, catch the problem here. */ + if (DECL_IN_CONSTANT_POOL (decl)) + return; + write_var_marker (file, false, TREE_PUBLIC (decl), name); fprintf (file, "\t.extern "); -- 2.30.2