Closed Bug 900198 Opened 6 years ago Closed 6 years ago

Suppress the indirect call static analysis hazards in AsmJS.cpp

Categories

(Core :: JavaScript Engine, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla25

People

(Reporter: terrence, Assigned: terrence)

References

Details

Attachments

(1 file)

These appear to be spurious because of the indirect control flow.
CheckCallArgs is a static function which makes use of namespaces, so the whole signature acts as the name. I think it would probably be safe to just search for CheckCallArgs in the string, but I've gone with the more conservative approach of comparing the full string. It will re-trigger the hazard if someone changes the signature, but I think that's probably preferable to adding unnecessary holes at this point.
Attachment #784001 - Flags: review?(sphink)
Comment on attachment 784001 [details] [diff] [review]
hazard_AsmJS-v0.diff

Review of attachment 784001 [details] [diff] [review]:
-----------------------------------------------------------------

::: js/src/devtools/rootAnalysis/annotations.js
@@ +25,5 @@
>          return true;
>  
> +    // CheckCallArgs dispatches to customize the checks.
> +    var CheckCallArgs = "AsmJS.cpp:uint8 CheckCallArgs(FunctionCompiler*, js::frontend::ParseNode*," +
> +                        " (uint8)(FunctionCompiler*,js::frontend::ParseNode*,Type)*, FunctionCompiler::Call*)";

No comment, and forget about the line length -- I'd rather have the function name in a cut & pastable form. I tend to do that a lot when working with the analysis. (I like the CheckCallArgs var, though.)
Attachment #784001 - Flags: review?(sphink) → review+
https://hg.mozilla.org/mozilla-central/rev/ef0470081b25
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
You need to log in before you can comment on or make changes to this bug.