[cfe-dev] clang-cl emitting call to __udivti3 resolved from where?

Stephan Bergmann via cfe-dev cfe-dev at lists.llvm.org
Wed Nov 22 09:01:40 PST 2017

On 11/22/2017 05:54 PM, Stephen Canon wrote:
> __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".

>> On Nov 22, 2017, at 11:41 AM, Stephan Bergmann via cfe-dev <cfe-dev at lists.llvm.org> wrote:
>> 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?

More information about the cfe-dev mailing list