Bug#787217: clang++-3.7 generates wrong code with -O1 or -O2
Thibaut Paumard
thibaut at debian.org
Sat May 30 12:13:42 UTC 2015
Control: tag -1 upstream
Hi,
I just downloaded and built clang from svn. The bug is present there.
Regards, Thibaut.
Le 29/05/2015 22:51, Thibaut Paumard a écrit :
> Package: clang-3.7
> Version: 1:3.7~svn230892-1
> Severity: important
> File: /usr/bin/clang++-3.7
>
> Hi,
>
> when I build the following code with
> clang++-3.7 -O2 -o foo foo.C
> and then run ./foo, I get a SIGFPE. The example is minimal (if you remove the
> cerr before, no SIGFPE). That means that the code is taking the wrong path in
> the "if" clause. If you uncomment any of the two cerr within the "if", not
> SIGFPE anymore.
>
> This does not affect clang++3.4 or 3.5, it does also affect clang++-3.7 with
> -O1 but not not -O0.
>
> I haven't checked yet whether that affects upstream as well.
>
> Kind regards, Thibaut.
>
> foo.C -----
>
> #include <iostream>
> #include <fenv.h>
>
> double computeCst(double QQ) {
> std::cerr << "foo\n" << std::endl;
> if (QQ==0) {
> //std::cerr << "right path\n";
> return 1.;
> } else {
> //std::cerr << "wrong path\n";
> return 1/QQ;
> }
> }
>
> int main(int argc, char *argv[]) {
> feenableexcept(FE_DIVBYZERO);
> computeCst(0.);
> return 0;
> }
>
>
>
> -- System Information:
> Debian Release: 8.0
> APT prefers stable
> APT policy: (990, 'stable')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
>
> Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
> Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
>
> Versions of packages clang-3.7 depends on:
> ii binutils 2.25-5
> ii libc6 2.19-18
> ii libc6-dev 2.19-18
> ii libclang-common-3.7-dev 1:3.7~svn230892-1
> ii libclang1-3.7 1:3.7~svn230892-1
> ii libedit2 3.1-20140620-2
> ii libffi6 3.1-2+b2
> ii libgcc-4.9-dev 4.9.2-10
> ii libgcc1 1:4.9.2-10
> ii libllvm3.7 1:3.7~svn230892-1
> ii libobjc-4.9-dev 4.9.2-10
> ii libstdc++-4.9-dev 4.9.2-10
> ii libstdc++6 4.9.2-10
> ii libtinfo5 5.9+20140913-1+b1
> ii zlib1g 1:1.2.8.dfsg-2+b1
>
> Versions of packages clang-3.7 recommends:
> pn llvm-3.7-dev <none>
> ii python 2.7.9-1
>
> Versions of packages clang-3.7 suggests:
> pn clang-3.7-doc <none>
> pn gnustep <none>
> pn gnustep-devel <none>
>
> -- no debconf information
>
More information about the Pkg-llvm-team
mailing list