Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Feb 2016 11:37:01 -0800
From:      Mark Millard <markmi@dsl-only.net>
To:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>
Subject:   I've' submitted 207325 and 207359 for powerpc/powrpc64 c++ exception problems for projects/clang380-import -r295601 (9 line program)
Message-ID:  <83B8741C-B4C9-4EFB-A3B4-473F8F165984@dsl-only.net>

next in thread | raw e-mail | index | archive | help
The following program does not work for my example TARGET_ARCH=3Dpowerpc =
and TARGET_ARCH=3Dpowerpc64 environments for buildworld based on =
projects/clang380-import -r205601:

#include <exception>

int main(void)
{
    try { throw std::exception(); }
    catch (std::exception& e) {} // same result without &
    return 0;
}

The details vary for what happens and what compiler is in use.

TARGET_ARCH=3Dpowerpc with clang 3.8.0: SEGV

TARGET_ARCH=3Dpowerpc64 with devel/powerpc64-gcc: unbouded loop in =
_Unwind_RaiseException

For the powerpc64 context: g++49 can be used to show the problem as =
well:

Using g++49's a.out gets the same unbounded loop result for:

# g++49 -I /usr/include/c++/v1/ -L /usr/lib/ -g -Wall -pedantic =
exception_test.cpp                                                       =
                                                              =20

But the a.out works fine for a normal g++49 header/library usage:

# g++49 -g -Wall -pedantic exception_test.cpp
# ./a.out
#=20



(These were noticed by trying to build and use kyua to run the =
/usr/tests material in tehse enviroments.)


=3D=3D=3D
Mark Millard
markmi at dsl-only.net




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?83B8741C-B4C9-4EFB-A3B4-473F8F165984>