Bug 89953 - New fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit.html fails on 32 bit
Summary: New fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit.html fails ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords: Qt, QtTriaged
Depends on:
Blocks: 87008 89802
  Show dependency treegraph
 
Reported: 2012-06-26 00:42 PDT by Csaba Osztrogonác
Modified: 2012-06-26 02:23 PDT (History)
9 users (show)

See Also:


Attachments
the patch (2.83 KB, patch)
2012-06-26 01:10 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Csaba Osztrogonác 2012-06-26 00:42:17 PDT
It is a new test introduced in http://trac.webkit.org/changeset/121215
and fails on 32 bit platforms. (Qt and GTK)

--- /ramdisk/qt-linux-32-release-webkit2/build/layout-test-results/fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit-expected.txt 
+++ /ramdisk/qt-linux-32-release-webkit2/build/layout-test-results/fast/js/dfg-store-unexpected-value-into-argument-and-osr-exit-actual.txt 
@@ -153,56 +153,56 @@
 PASS foo(3, {f:f, g:g}, p) is 85
 PASS foo(3, {f:f, g:g}, p) is 1
 PASS foo(3, {f:f, g:g}, p) is 85
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
-PASS foo(3, {f:f, g:g}, p) is 0.5
-PASS foo(3, {f:f, g:g}, p) is 85.5
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 0.5. Was 43.
+FAIL foo(3, {f:f, g:g}, p) should be 85.5. Was 43.
 PASS successfullyParsed is true
 
 TEST COMPLETE
Comment 1 Filip Pizlo 2012-06-26 00:43:58 PDT
Oh no!  Fix on the way...
Comment 2 Filip Pizlo 2012-06-26 01:00:21 PDT
Oh wow, good thing I wrote that test.

Looks like the 32-bit DFG was assuming totally bad things about the types of local variables.

Patch forthcoming.
Comment 3 Filip Pizlo 2012-06-26 01:10:09 PDT
Created attachment 149475 [details]
the patch

This ought to do it.
Comment 4 Csaba Osztrogonác 2012-06-26 02:07:50 PDT
All tests pass on 32 bit Qt with this patch. Thanks for the fix.
Comment 5 WebKit Review Bot 2012-06-26 02:23:02 PDT
Comment on attachment 149475 [details]
the patch

Clearing flags on attachment: 149475

Committed r121243: <http://trac.webkit.org/changeset/121243>
Comment 6 WebKit Review Bot 2012-06-26 02:23:08 PDT
All reviewed patches have been landed.  Closing bug.