Your message dated Sun, 15 Apr 2012 22:13:23 +0200
with message-id <[email protected]>
and subject line invalid
has caused the Debian Bug report #666158,
regarding clang: C code using bad memset calls causes illegal instruction when
compiled with optimizations enabled
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
666158: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666158
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: clang
Version: 3.0-6
Severity: minor
Hi,
when compiling C code using memset in a bad way with clang, enabling
optimizations (-O1 / -O2 / -Os) creates binaries with an illegal instruction on
x86 and x86_64 systems:
zsh: illegal hardware instruction ./ill
valgrind: vex x86->IR: unhandled instruction bytes: 0xF 0xB 0x90 0x90
When using gcc (or clang without optimizations), the code terminates with a
segmentation fault, I believe this should happen for clang -O1 / -O2 as well.
This only happens when compiling _wrong_ code, so I'm not sure how much of a
bug this actually is.
A file to reproduce this (ill.c) is attached.
If I can provide any additional information, please let me know.
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 3.2.0-2-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages clang depends on:
ii libc6 2.13-27
ii libclang-common-dev 3.0-6
ii libffi5 3.0.10-3
ii libgcc1 1:4.7.0-1
ii libllvm3.0 3.0-9
ii libstdc++6 4.7.0-1
ii libstdc++6-4.6-dev 4.6.3-1
Versions of packages clang recommends:
ii llvm-3.0-dev <none>
ii python 2.7.2-10
clang suggests no packages.
-- no debconf information
/*
* compiled with: clang -O2 -Wall -Wextra -o ill ill.c
*
* expected: segmentation fault
* actual result: illegal instruction (tested on x86 and x86_64)
* happens with -O1, -O2 and -Os, it's fine without optimization
*/
#include <stdlib.h>
#include <string.h>
struct __somestruct {
int a;
int b;
int c;
int d;
int e;
int f;
};
typedef struct __somestruct _somestruct;
typedef _somestruct *somestruct;
int main (void)
{
somestruct foo = NULL;
foo = malloc(sizeof(_somestruct));
memset(&foo, 0, sizeof(foo));
/* correct usage: */
/* memset(foo, 0, sizeof(_somestruct)); */
/* note: gcc -O2 optimizes this all away, so to compare it to gcc, the
* code may need to be more complex
*/
foo->a = 25;
return 0;
}
--- End Message ---
--- Begin Message ---
Thx Dhananjay message.
S
--- End Message ---