https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103053
Bug ID: 103053
Summary: Unexpected ".global __divti3" emitted for unsigned 128
bit division
Product: gcc
Version: 10.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: simonb at vmware dot com
Target Milestone: ---
Created attachment 51725
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51725&action=edit
Preprocessed reproducer for the bug
When compiling the attached reproducer which contains an unsigned 128 bit
divide with any of gcc 7.5.0, 9.3.0, 10.3.0 for x86_64 or gcc 9.3.0 for aarch64
with -O2 it emits a
.globl __divti3
even though there is no call to that function.
In the x86 asm output for the reproducer, there is:
.size bar, .-bar
.globl __udivti3
.globl __divti3 <-- bogus .global emission
.globl foo
...
call__udivti3
This occurs on at least:
gcc 7.5.0 target x86_64--netbsd
gcc 9.3.0 target x86_64--linux-gnu
gcc 10.3.0 targets aarch64--netbsd x86_64--netbsd
No ".global __divti3" is emitted with:
gcc 6.4.0 target x86_64--linux-gnu