https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79687

--- Comment #20 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Oh well.  Anyway, this

--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -1973,7 +1973,8 @@ cp_fold_maybe_rvalue (tree x, bool rval)
     {
       x = cp_fold (x);
       if (rval && DECL_P (x)
-     && TREE_CODE (TREE_TYPE (x)) != REFERENCE_TYPE)
+     && TREE_CODE (TREE_TYPE (x)) != REFERENCE_TYPE
+     && !TYPE_PTRDATAMEM_P (TREE_TYPE (x)))
    {
      tree v = decl_constant_value (x);
      if (v != x && v != error_mark_node)


fixes the original testcase, as well as the one Comment 4 and in Comment 11.

Reply via email to