[PATCH] D136564: [clang] Instantiate NTTPs and template default arguments with sugar

Matheus Izvekov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 26 00:55:28 PDT 2022


mizvekov added a comment.

In D136564#3884470 <https://reviews.llvm.org/D136564#3884470>, @glandium wrote:

> This broke building Firefox with:
>
>   In file included from Unified_cpp_dom_canvas0.cpp:65:
>   /tmp/gecko/dom/canvas/ClientWebGLContext.cpp:355:19: error: call to deleted function 'IdByMethod'
>     const auto id = IdByMethod<MethodType, method>();
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   /tmp/gecko/dom/canvas/ClientWebGLContext.cpp:438:3: note: in instantiation of function template specialization 'mozilla::ClientWebGLContext::Run<void (mozilla::HostWebGLContext::*)(unsigned long, mozilla::layers::TextureType, bool, const mozilla::webgl::SwapChainOptions &) const, &mozilla::HostWebGLContext::Present, unsigned long, const mozilla::layers::TextureType &, const bool &, mozilla::webgl::SwapChainOptions &>' requested here
>     Run<RPROC(Present)>(xrFb ? xrFb->mId : 0, type, webvr, asyncOptions);
>     ^
>   /tmp/gecko/dom/canvas/WebGLMethodDispatcher.h:20:8: note: candidate function [with MethodT = void (mozilla::HostWebGLContext::*)(unsigned long, mozilla::layers::TextureType, bool, const mozilla::webgl::SwapChainOptions &) const, Method = &mozilla::HostWebGLContext::Present] has been explicitly deleted
>   size_t IdByMethod() = delete;
>          ^
>   In file included from Unified_cpp_dom_canvas0.cpp:65:
>   /tmp/gecko/dom/canvas/ClientWebGLContext.cpp:355:19: error: call to deleted function 'IdByMethod'
>     const auto id = IdByMethod<MethodType, method>();
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   /tmp/gecko/dom/canvas/ClientWebGLContext.cpp:447:3: note: in instantiation of function template specialization 'mozilla::ClientWebGLContext::Run<void (mozilla::HostWebGLContext::*)(unsigned long, mozilla::layers::TextureType, const mozilla::webgl::SwapChainOptions &) const, &mozilla::HostWebGLContext::CopyToSwapChain, unsigned long, const mozilla::layers::TextureType &, mozilla::webgl::SwapChainOptions &>' requested here
>     Run<RPROC(CopyToSwapChain)>(fb ? fb->mId : 0, texType, asyncOptions);
>     ^
>   /tmp/gecko/dom/canvas/WebGLMethodDispatcher.h:20:8: note: candidate function [with MethodT = void (mozilla::HostWebGLContext::*)(unsigned long, mozilla::layers::TextureType, const mozilla::webgl::SwapChainOptions &) const, Method = &mozilla::HostWebGLContext::CopyToSwapChain] has been explicitly deleted
>   size_t IdByMethod() = delete;
>          ^
>
> (etc.)

Thanks for reporting. Do you have preprocessed source + cc1 flags to reproduce it, so I can have a look?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136564/new/

https://reviews.llvm.org/D136564



More information about the cfe-commits mailing list