http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57509

Marc Glisse <glisse at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2013-06-08
     Ever confirmed|0                           |1

--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> ---
(In reply to Paolo Carlini from comment #1)
> Maybe Marc is interested in this.

ChangeLog says this is probably my fault...

c_build_vec_perm_expr is missing some code like we can find in build_x_unary_op
for instance:

  if (processing_template_decl)
    {
      if (type_dependent_expression_p (xarg))
        return build_min_nt_loc (loc, code, xarg, NULL_TREE);

      xarg = build_non_dependent_expr (xarg);
    }

RID_BUILTIN_SHUFFLE is handled very early in parser.c which directly calls
c_build_vec_perm_expr. I guess we could use build_min_nt(VEC_PERM_EXPR,...) to
store the template version, and make sure that c_build_vec_perm_expr is called
once the types are instantiated (in tsubst_copy(_and_build)?).

Reply via email to