Bug 126422

Summary: CStack Branch: slowPathFor in ThunkGenerators.cpp fail to compile
Product: WebKit Reporter: Michael Saboff <msaboff>
Component: JavaScriptCoreAssignee: Michael Saboff <msaboff>
Status: RESOLVED WONTFIX    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch fpizlo: review-

Description Michael Saboff 2014-01-03 00:25:41 PST
slowPathFor() in ThunkGenerators.cpp cause a compilation failure on ARM64 due to missing noreturn attribute.
Comment 1 Michael Saboff 2014-01-03 00:27:55 PST
Created attachment 220287 [details]
Patch
Comment 2 Filip Pizlo 2014-01-03 10:12:25 PST
Comment on attachment 220287 [details]
Patch

I really don't like the use of these pragmas.  Is this because slowPathFor calls a function marked NORETURN?  If so, remove NORETURN from that function.  Can't remove NORETURN from a function because it uses CRASH() or RELEASE_ASSERT_NOT_REACHED()?  In that case, just use UNREACHABLE_FOR_PLATFORM() instead.
Comment 3 Michael Saboff 2014-01-03 17:46:37 PST
(In reply to comment #2)
> (From update of attachment 220287 [details])
> I really don't like the use of these pragmas.  Is this because slowPathFor calls a function marked NORETURN?  If so, remove NORETURN from that function.  Can't remove NORETURN from a function because it uses CRASH() or RELEASE_ASSERT_NOT_REACHED()?  In that case, just use UNREACHABLE_FOR_PLATFORM() instead.

This bug is no longer needed.  The compilation issue was due to pop(callFrameRegister) being a CRASH() on ARM64.  Fixing the real issue now handled in <https://bugs.webkit.org/show_bug.cgi?id=126478> - "CStack Branch: slowPathFor() should emit an epilogue instead of popping the callFrameRegister".