re PR c++/83778 (g++.dg/ext/altivec-cell-2.C fails starting with r256448)
authorJakub Jelinek <jakub@redhat.com>
Fri, 12 Jan 2018 21:41:19 +0000 (22:41 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 12 Jan 2018 21:41:19 +0000 (22:41 +0100)
PR c++/83778
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call
fold_for_warn before checking if arg2 is INTEGER_CST.

From-SVN: r256599

gcc/ChangeLog
gcc/config/rs6000/rs6000-c.c

index 9316f568c91802f4992618ccea5e1ad8095506a8..5333a67168a4683b8aa868a8e3b9251d45d19448 100644 (file)
@@ -1,3 +1,9 @@
+2018-01-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/83778
+       * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call
+       fold_for_warn before checking if arg2 is INTEGER_CST.
+
 2018-01-12  Segher Boessenkool  <segher@kernel.crashing.org>
 
        * config/rs6000/predicates.md (load_multiple_operation): Delete.
index b7693d088095babf4270637e9b339fa2f04f2606..5805d263222799b13cd414e2d2a71328db63f73f 100644 (file)
@@ -6496,6 +6496,8 @@ altivec_resolve_overloaded_builtin (location_t loc, tree fndecl,
          tree call = NULL_TREE;
          int nunits = GET_MODE_NUNITS (mode);
 
+         arg2 = fold_for_warn (arg2);
+
          /* If the second argument is an integer constant, if the value is in
             the expected range, generate the built-in code if we can.  We need
             64-bit and direct move to extract the small integer vectors.  */
@@ -6640,7 +6642,7 @@ altivec_resolve_overloaded_builtin (location_t loc, tree fndecl,
       arg0 = (*arglist)[0];
       arg1 = (*arglist)[1];
       arg1_type = TREE_TYPE (arg1);
-      arg2 = (*arglist)[2];
+      arg2 = fold_for_warn ((*arglist)[2]);
 
       if (TREE_CODE (arg1_type) != VECTOR_TYPE)
        goto bad;