aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2021-06-21 07:54:26 -0400
committerPatrick Palka <ppalka@redhat.com>2021-06-21 07:54:26 -0400
commitde31f5445b12fd9ab9969dc536d821fe6f0edad0 (patch)
tree46482082fa351d3e45aeab1f69948b29c7fbc0a9 /gcc/tree-vectorizer.h
parent644c2cc5f2c09506a7bfef293a7f90efa8d7e5fa (diff)
downloadgcc-de31f5445b12fd9ab9969dc536d821fe6f0edad0.zip
gcc-de31f5445b12fd9ab9969dc536d821fe6f0edad0.tar.gz
gcc-de31f5445b12fd9ab9969dc536d821fe6f0edad0.tar.bz2
c++: conversion to base of vbase in NSDMI [PR80431]
The delayed processing of conversions to a virtual base in an NSDMI assumes the target base type is a (possibly indirect) virtual base of the current class, but the target base type could also be a base of a virtual base, as in the testcase below. Since such a base isn't a part of CLASSTYPE_VBASECLASSES, we end up miscompiling the testcase due to the call to build_base_path (with binfo=NULL_TREE) silently returning error_mark_node. Fix this by using convert_to_base to build the conversion instead. PR c++/80431 gcc/cp/ChangeLog: * tree.c (bot_replace): Use convert_to_base to build the conversion to the (morally) virtual base. gcc/testsuite/ChangeLog: * g++.dg/cpp0x/nsdmi-virtual1a.C: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions