]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/43791 (kernel/rtmutex.c:1138:1: internal compiler error:...
authorJan Hubicka <jh@suse.cz>
Thu, 6 May 2010 14:15:22 +0000 (16:15 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 6 May 2010 14:15:22 +0000 (14:15 +0000)
PR tree-optimization/43791
* ipa-inline.c (update_caller_keys): Remove bogus
disregard_inline_limits check.

* gcc.c-torture/compile/pr43791.c: New file.

From-SVN: r159108

gcc/ChangeLog
gcc/ipa-inline.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr43791.c [new file with mode: 0644]

index c5288a9926c8aa6722378c7c7d41226512a95154..06988c83c8cfd5b325610d97d74962926d86ed13 100644 (file)
@@ -1,3 +1,9 @@
+2010-05-06  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/43791
+       * ipa-inline.c (update_caller_keys): Remove bogus
+       disregard_inline_limits check.
+
 2010-05-06  Michael Matz  <matz@suse.de>
 
        PR tree-optimization/43984
index e18a0cd0ddd42899a829f4795fd036f7f32cb61d..5f9fe102ba1ff7d7b73b39fd5ca8bc1ac5c18b8a 100644 (file)
@@ -664,7 +664,7 @@ update_caller_keys (fibheap_t heap, struct cgraph_node *node,
   struct cgraph_edge *edge;
   cgraph_inline_failed_t failed_reason;
 
-  if (!node->local.inlinable || node->local.disregard_inline_limits
+  if (!node->local.inlinable
       || node->global.inlined_to)
     return;
   if (bitmap_bit_p (updated_nodes, node->uid))
index a51f4db560ebd58af8efdb950de8383f911780cd..680c4554e4e2ac293f0ff5ea0748eb7b136e1571 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-06  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/43791
+       * gcc.c-torture/compile/pr43791.c: New file.
+
 2010-05-06  Michael Matz  <matz@suse.de>
 
        PR tree-optimization/43984
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43791.c b/gcc/testsuite/gcc.c-torture/compile/pr43791.c
new file mode 100644 (file)
index 0000000..38cb3c8
--- /dev/null
@@ -0,0 +1,21 @@
+int owner();
+int clear();
+
+static void fixup() {
+   clear();
+}
+
+inline __attribute__ ((always_inline))
+void slowtrylock(void) {
+     if (owner())
+         fixup();
+}
+
+void fasttrylock(void (*slowfn)()) {
+     slowfn();
+}
+
+void trylock(void) {
+     fasttrylock(slowtrylock);
+}
+