Closed Bug 1628961 Opened 11 months ago Closed 11 months ago

Replace MOZ_MUST_USE with [[nodiscard]] in docshell and uriloader

Categories

(Core :: DOM: Navigation, task, P3)

task

Tracking

()

RESOLVED FIXED
mozilla77
Tracking Status
firefox77 --- fixed

People

(Reporter: cpeterson, Assigned: cpeterson)

References

(Blocks 2 open bugs)

Details

Attachments

(2 files)

The MOZ_MUST_USE macro is defined as clang's and gcc's nonstandard attribute((warn_unused_result)). Now that we compile as C++17 by default (bug 1560664), we can replace MOZ_MUST_USE with C++17's standard [[nodiscard]] attribute.

Also move MOZ_MUST_USE before function declarations' specifiers and return type. While clang and gcc's __attribute__((warn_unused_result)) can appear before, between, or after function specifiers and return types, the [[nodiscard]] attribute must precede the function specifiers.

I also needed to wrap the nsDocLoader::RemoveChildLoader() function declaration with // clang-format off and // clang-format on. clang-format insists on indenting the function declaration because it is confused by the NS_DECL_ macros without trailing semicolons before the [[nodiscard]] attribute. I feel this is a clang-format bug. (I hit the same issue in bug 1624786 comment 11.)

Also move MOZ_MUST_USE before function declarations' specifiers and return type. While clang and gcc's attribute((warn_unused_result)) can appear before, between, or after function specifiers and return types, the [[nodiscard]] attribute must precede the function specifiers.

I also needed to wrap the nsDocLoader::RemoveChildLoader() function declaration with // clang-format off and // clang-format on. clang-format insists on indenting the function declaration because it is confused by the NS_DECL_ macros without trailing semicolons before the [[nodiscard]] attribute.

Blocks: 1629756
Pushed by cpeterson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/078326f48100
Replace MOZ_MUST_USE with [[nodiscard]] in docshell and uriloader. r=smaug
Status: NEW → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
Pushed by cpeterson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/40177ff41c87
Replace "clang-format off" with semicolon workaround for clang-format bug 1629756. r=smaug
You need to log in before you can comment on or make changes to this bug.