Hi WebKit-dev,

I'm asking about whether we can use C++ 17's new attribute [[maybe_unused]]. 
These are situations I cannot solve well with UNUSED_PARAM().

Case 1: The function parameter is only used in RELEASE_LOG macro which is empty 
in some platform
https://github.com/WebKit/webkit/blob/master/Source/WebKit/NetworkProcess/NetworkHTTPSUpgradeChecker.cpp#L105

    m_workQueue->dispatch([this, host = host.isolatedCopy(), sessionID, 
callback = WTFMove(callback)] () mutable {
        ...
        RELEASE_LOG_IF_ALLOWED(sessionID, "query - Ran successfully. Result = 
%s", (foundHost ? "true" : "false"));
        ...
    });

`sessionID` is used in RELEASE_LOG_IF_ALLOWED() and we have empty 
implementation of RELEASE_LOG() so that it's ended up with unused parameter 
warning of sessionID. We can add UNUSED_PARAM(sessionID) in this case, but 
[[maybe_unused]] is more correct choice to describe the code because sessionID 
is actually used.

I also tried to replace empty RELEASE_LOG macro with something to use every 
parameter marked used somehow, but the trial just failed.

Case 2: The member variable is just used by specific port
https://github.com/WebKit/webkit/blob/master/Source/WebKit/NetworkProcess/NetworkLoadChecker.h#L155

    bool m_isHTTPSUpgradeEnabled { false };

This member variable is only used in COCOA port. 
(https://github.com/WebKit/webkit/blob/master/Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp#L203)

We can add UNUSED_PARAM(isHTTPSUpgradeEnabled) in our platform code, but adding 
[[maybe_unused]] in the header file is straight forward.

Compiler support of this attribute seems okay for any WebKit build. I've done 
quick check on Godbolt. https://godbolt.org/z/w47XXn


-----
Basuke Suzuki
SONY PlayStation

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to