Hello,

__builtin_shuffle with 2 arguments is represented as having 3 arguments, the second being 0, which isn't supported here.

Bootstrap+testsuite on x86_64-unknown-linux-gnu.

2013-11-01  Marc Glisse  <marc.gli...@inria.fr>

        PR c++/58834
gcc/cp/
        * pt.c (value_dependent_expression_p): Handle null argument.

gcc/testsuite/
        * g++.dg/ext/pr58834.C: New file.

--
Marc Glisse
Index: gcc/cp/pt.c
===================================================================
--- gcc/cp/pt.c (revision 204279)
+++ gcc/cp/pt.c (working copy)
@@ -20499,21 +20499,21 @@ value_dependent_expression_p (tree expre
    considered dependent.  Other parts of the compiler arrange for an
    expression with type-dependent subexpressions to have no type, so
    this function doesn't have to be fully recursive.  */
 
 bool
 type_dependent_expression_p (tree expression)
 {
   if (!processing_template_decl)
     return false;
 
-  if (expression == error_mark_node)
+  if (expression == NULL_TREE || expression == error_mark_node)
     return false;
 
   /* An unresolved name is always dependent.  */
   if (identifier_p (expression) || TREE_CODE (expression) == USING_DECL)
     return true;
 
   /* Some expression forms are never type-dependent.  */
   if (TREE_CODE (expression) == PSEUDO_DTOR_EXPR
       || TREE_CODE (expression) == SIZEOF_EXPR
       || TREE_CODE (expression) == ALIGNOF_EXPR
Index: gcc/testsuite/g++.dg/ext/pr58834.C
===================================================================
--- gcc/testsuite/g++.dg/ext/pr58834.C  (revision 0)
+++ gcc/testsuite/g++.dg/ext/pr58834.C  (working copy)
@@ -0,0 +1,5 @@
+template<typename> void foo()
+{
+  int i __attribute__((vector_size(2*sizeof(int))));
+  (void) __builtin_shuffle(i, i);
+}

Property changes on: gcc/testsuite/g++.dg/ext/pr58834.C
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Revision URL
\ No newline at end of property

Reply via email to