Bug 133293

Summary: LowLevelInterpreter.cpp inline asm bug (incorrect .cfi_startproc usage causes compiler abort or incorrectly compiled code)
Product: WebKit Reporter: Jeremy Huddleston Sequoia <jeremyhu>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: CLOSED WORKSFORME    
Severity: Normal CC: philip.chimento
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Jeremy Huddleston Sequoia 2014-05-26 17:06:16 PDT
LowLevelInterpreter.cpp is failing to be compiled with recent clang.  It was previously being compiled incorrectly.

The issue is that code like this is being omitted (in LLIntAssembly.h):

        .section        __TEXT,__text,regular,pure_instructions                  
                                        ## Start of file scope inline assembly 
.cfi_startproc                                                                   
.text                                                                            
.globl _callToJavaScript                                                         
.private_extern _callToJavaScript                                                
_callToJavaScript:  

Note that .cfi_startproc precedes the definition of the symbol. That's not correct. It should be after the "_callToJavaScript:" line since that's the symbol it's associated with.

The compiler would previously associate that directive with the previously seen symbol, which is also not what this code wants.


If you have access, you can see <rdar://problem/16942469> for more information, but it was determined that this issue is not something that Apple is responsible for.
Comment 1 Philip Chimento 2015-01-06 19:57:40 PST
This occurs for me on WebKitGTK 2.4.x, but not on 2.6.x. (Quartz / Darwin / OSX 10.10)
Comment 2 Philip Chimento 2015-05-03 17:05:04 PDT
I think actually Apple was responsible for it; in any case, it was fixed in the clang shipped with XCode 6.3. I think this bug can be closed.