diff options
author | Tom de Vries <tdevries@suse.de> | 2019-06-12 14:56:18 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2019-06-12 14:56:18 +0000 |
commit | 4b557bcc0d0674011a45ad259f44b9830289bd1f (patch) | |
tree | 9c900c856462b917ba7a9bcb05137ff823f9874a /gcc/config/nvptx | |
parent | 801b2266dee7bc669bcab0ff645a0b36fa9dcfd5 (diff) | |
download | gcc-4b557bcc0d0674011a45ad259f44b9830289bd1f.zip gcc-4b557bcc0d0674011a45ad259f44b9830289bd1f.tar.gz gcc-4b557bcc0d0674011a45ad259f44b9830289bd1f.tar.bz2 |
[nvptx] Assert fork has at most one join in nvptx_find_par
With the test-case of PR90009 we run into a SIGSEGV in nvptx_neuter_pars,
because par->join_insn and par->join_block are NULL.
Detect this problem earlier, by adding an assert in nvptx_find_par that
asserts that a fork cannot be paired with more than one join.
Build and tested on x86_64 with nvptx accelerator enabled.
2019-06-12 Tom de Vries <tdevries@suse.de>
PR tree-optimization/90009
* config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
From-SVN: r272189
Diffstat (limited to 'gcc/config/nvptx')
-rw-r--r-- | gcc/config/nvptx/nvptx.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 1986e79..76468f6 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -3258,6 +3258,7 @@ nvptx_find_par (bb_insn_map_t *map, parallel *par, basic_block block) unsigned mask = UINTVAL (XVECEXP (PATTERN (end), 0, 0)); gcc_assert (par->mask == mask); + gcc_assert (par->join_block == NULL); par->join_block = block; par->join_insn = end; if (nvptx_needs_shared_bcast (mask)) |