clang-cl emitting call to __udivti3 resolved from where?

At least on recent trunk, a simple test.c

unsigned __int128 f(unsigned __int128 a, unsigned __int128 b) { return a / b; }

compiled as

clang-cl /c /FA test.c

will contain a call to __udivti3 (see generated test.asm), but it is not clear to me from where that symbol is supposed to be resolved when actually linking test.obj?

__udivti3 is provided by compiler-rt.

__udivti3 is provided by compiler-rt.

Yeah, but clang-cl won't link against anything from there. Sorry for being unclear in my original mail. So if you actually try to link test2.c

unsigned __int128 f(unsigned __int128 a, unsigned __int128 b) { return a / b; }
int main() { return 0; }

on Windows with

clang-cl test2.c

it will fail with "error LNK2019: unresolved external symbol __udivti3 referenced in function f".

ah, there's <https://bugs.llvm.org/show_bug.cgi?id=25305&gt; "Clang-cl generates a call to an undefined symbol __udivti3" already