re PR bootstrap/64213 (gimple-match.c:1523:6: error: ‘GIMPLE’ was not declared in...
authorUros Bizjak <ubizjak@gmail.com>
Tue, 9 Dec 2014 14:34:32 +0000 (15:34 +0100)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 9 Dec 2014 14:34:32 +0000 (15:34 +0100)
PR bootstrap/64213
Revert:
2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/64037
* combine.c (setup_incoming_promotions): Pass the argument
before any promotions happen to promote_function_mode.

testsuite/ChangeLog:

PR bootstrap/64213
Revert:
2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/64037
* g++.dg/pr64037.C: New test.

From-SVN: r218516

gcc/ChangeLog
gcc/combine.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr64037.C [deleted file]

index 7531234..c38a072 100644 (file)
@@ -1,3 +1,13 @@
+2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR bootstrap/64213
+       Revert:
+       2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR rtl-optimization/64037
+       * combine.c (setup_incoming_promotions): Pass the argument
+       before any promotions happen to promote_function_mode.
+
 2014-12-09  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/64193
index 39f9200..9ed03be 100644 (file)
@@ -1579,8 +1579,8 @@ setup_incoming_promotions (rtx_insn *first)
       uns3 = TYPE_UNSIGNED (DECL_ARG_TYPE (arg));
 
       /* The mode and signedness of the argument as it is actually passed,
-         see assign_parm_setup_reg in function.c.  */
-      mode3 = promote_function_mode (TREE_TYPE (arg), mode1, &uns1,
+         after any TARGET_PROMOTE_FUNCTION_ARGS-driven ABI promotions.  */
+      mode3 = promote_function_mode (DECL_ARG_TYPE (arg), mode2, &uns3,
                                     TREE_TYPE (cfun->decl), 0);
 
       /* The mode of the register in which the argument is being passed.  */
index ed03156..cc4a734 100644 (file)
@@ -1,3 +1,12 @@
+2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR bootstrap/64213
+       Revert:
+       2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR rtl-optimization/64037
+       * g++.dg/pr64037.C: New test.
+
 2014-12-09  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/64193
diff --git a/gcc/testsuite/g++.dg/pr64037.C b/gcc/testsuite/g++.dg/pr64037.C
deleted file mode 100644 (file)
index e5cd0e2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-// { dg-do run { target i?86-*-* x86_64-*-* } }
-// { dg-options "-std=c++11 -Os" }
-
-enum class X : unsigned char {
-  V = 2,
-};
-
-static void
-__attribute__((noinline,noclone))
-foo(unsigned &out, unsigned a, X b)
-{
-  out = static_cast<unsigned>(b);
-}
-
-int main()
-{
-  unsigned deadbeef = 0xDEADBEEF;
-  asm volatile ("" : "+d" (deadbeef), "+c" (deadbeef));
-
-  unsigned out;
-  foo(out, 2, X::V);
-
-  if (out != 2)
-    __builtin_abort ();
-
-  return 0;
-}