================
@@ -257,14 +256,9 @@ const char *const Runtimes = R"(
     void __clang_Interpreter_SetValueNoAlloc(void*, void*, void*, long double);
     void __clang_Interpreter_SetValueNoAlloc(void*,void*,void*,unsigned long 
long);
     template <class T, class = T (*)() /*disable for arrays*/>
-    void __clang_Interpreter_SetValueCopyArr(T* Src, void* Placement, unsigned 
long Size) {
----------------
makslevental wrote:

> We can’t outline templates because we are introducing an odr violation.

This is not correct - templates (subject to conditions satisfied here) are 
exempt from odr:

> There can be more than one definition of a [...] templated entity 
> ([temp.pre]) [...] in a program provided that each definition appears in a 
> different translation unit and the definitions satisfy the following 
> requirements.

https://timsong-cpp.github.io/cppwp/n4861/basic.def.odr#13

> We should move new behind a new non-templates operation which we can forward 
> declare and use within the template.

I don't know what you're describing here; feel free to take over this PR if you 
have a concrete design in mind.

https://github.com/llvm/llvm-project/pull/69072
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to