It's a little bit complex than that, the thumb rule is that the declaration should get it, not the definition. That means there's no problem if the definition itself is a declaration. ```cpp // No problem, everything is good MOZ_CAN_RUN_SCRIPT static void foo(); static void bar() { foo(); } ``` ```cpp static void foo(); static void bar() { foo(); // !! bar() doesn't know foo is MOZ_CAN_RUN_SCRIPT } MOZ_CAN_RUN_SCRIPT foo() {}; ```
Bug 1748874 Comment 2 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
It's a little bit complex than that, the thumb rule is that the declaration should get it, not the definition. That means there's no problem if the definition itself is a declaration. ```cpp // No problem, everything is good MOZ_CAN_RUN_SCRIPT static void foo(); static void bar() { // MOZ_CAN_RUN_SCRIPT error as expected foo(); } ``` ```cpp static void foo(); static void bar() { foo(); // !! bar() doesn't know foo is MOZ_CAN_RUN_SCRIPT } MOZ_CAN_RUN_SCRIPT foo() {}; ```