This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/79649] New: Memset pattern in named address space crashes compiler or generates wrong code
- From: "me at manueljacob dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 21 Feb 2017 08:05:22 +0000
- Subject: [Bug middle-end/79649] New: Memset pattern in named address space crashes compiler or generates wrong code
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79649
Bug ID: 79649
Summary: Memset pattern in named address space crashes compiler
or generates wrong code
Product: gcc
Version: 7.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: me at manueljacob dot de
CC: amker at gcc dot gnu.org, rguenth at gcc dot gnu.org
Target Milestone: ---
Created attachment 40787
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40787&action=edit
GCC error output
This happens at least on x86-64 with -O3. If I pass code like this,
void memset_pattern_seg_gs(unsigned char __seg_gs *s, long n) {
for (long i = 0; i < n; ++i)
s[i] = 0;
}
the compiler crashes with "internal compiler error: in clear_storage_hints"
(full traceback attached).
If I change the loop body to set 1 instead of 0, the compiler emits a call to
memset, which is wrong because it will write to the wrong address space.