Closed
Bug 449463
Opened 16 years ago
Closed 16 years ago
outparams doesn't work on mac
Categories
(Developer Infrastructure :: Source Code Analysis, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: benjamin, Assigned: vladimir.sukhoy)
References
Details
Attachments
(2 files, 1 obsolete file)
6.23 KB,
patch
|
taras.mozilla
:
review+
|
Details | Diff | Splinter Review |
584 bytes,
patch
|
dmandelin
:
review+
|
Details | Diff | Splinter Review |
The outparams (treehydra) analysis doesn't seem to work on mac. I figured a couple fixes out myself (attached), but now I'm stuck with the following error: /builds/gcc-dehydra/dehydra/libs/treehydra.js:12: JS Exception: No gstmt in this lazy object :0: #0: Error("No gstmt in this lazy object") /builds/gcc-dehydra/dehydra/libs/treehydra.js:12: #1: unhandledLazyProperty("gstmt") /builds/gcc-dehydra/dehydra/libs/gcc_compat.js:89: #2: GIMPLE_STMT_OPERAND([object GCCNode],1) ../../../src/xpcom/analysis/mayreturn.js:22: #3: ([object GCCNode],[object Object]) /builds/gcc-dehydra/dehydra/libs/unstable/analysis.js:268: #4: ([object GCCNode]) /builds/gcc-dehydra/dehydra/libs/unstable/analysis.js:228: #5: () ../../../src/xpcom/analysis/../../../src/xpcom/analysis/outparams.js:91: #6: () ../../../src/xpcom/analysis/../../../src/xpcom/analysis/outparams.js:88: #7: process_tree([object GCCNode]) ../../../src/xpcom/analysis/../../../src/xpcom/analysis/static-checking.js:70: #8: process_tree([object GCCNode]) gmake[3]: *** [nsArrayUtils.o] Error 1 Also, I see isGCCApple and I'm almost certain that what we mean is "isGCC42", since that seems to be the real difference being checked.
Assignee | ||
Updated•16 years ago
|
Assignee: nobody → vladimir.sukhoy
Assignee | ||
Updated•16 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Comment 1•16 years ago
|
||
Indeed, "isGCC42" is more appropriate.
Comment 2•16 years ago
|
||
(In reply to comment #1) > Indeed, "isGCC42" is more appropriate. > Didn't we have this discussion before? I thought it turned out that apple has a funny way of doing call_exprs or something else that wouldn't be happening on GCC on non-apple platforms.
Assignee | ||
Comment 3•16 years ago
|
||
I think call_expr's arguments being stored on the chain (one of the more annoying things indeed) is actually gcc42. That we are using #ifdef APPLE to detect that is probably a bug. I think there are just a couple really apple-specific places in the code, I do recall though that detecting the target gcc version at compile time proved to be nontrivial.
Assignee | ||
Comment 4•16 years ago
|
||
This patch includes: these fixups in gcc compat JS layer and more of that, use isGCC42 instead of isGCCApple, gcc42-specific fix to treehydra bootstrapping to fix location to string conversion in treehydra that is used in outparams. Also need visibility fixups for gcc 4.2 from bug 449639. Basically outparams run with these two patches and the following patch to outparams themselves. I wonder who is the best reviewer for this atm?
Attachment #332582 -
Attachment is obsolete: true
Attachment #335272 -
Flags: review?
Assignee | ||
Comment 5•16 years ago
|
||
Basically use a gcc42-compatible way to retrieving the function node for a call.
Attachment #335273 -
Flags: review?
Assignee | ||
Updated•16 years ago
|
Attachment #335273 -
Flags: review? → review?(dmandelin)
Assignee | ||
Updated•16 years ago
|
Attachment #335272 -
Flags: review? → review?(tglek)
Updated•16 years ago
|
Attachment #335273 -
Flags: review?(dmandelin) → review+
Updated•16 years ago
|
Attachment #335272 -
Flags: review?(tglek) → review+
Comment 6•16 years ago
|
||
Comment on attachment 335272 [details] [diff] [review] treehydra fixes good work.
Assignee | ||
Comment 7•16 years ago
|
||
Pushed treehydra fixes: b086b7e8aa3f, outparams mod: 5d2eb4202119.
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Updated•16 years ago
|
Version: unspecified → Trunk
Updated•6 years ago
|
Product: Core → Firefox Build System
Updated•2 years ago
|
Product: Firefox Build System → Developer Infrastructure
You need to log in
before you can comment on or make changes to this bug.
Description
•