The following example returns a compiler error "internal compiler error : in tsubst_copy, at cp/pt.c:11354". It occurs when the default std::function of a templated class member is used : //----------------------------------------------------------- #include <iostream> #include <functional> template<typename T> struct C { static T test(std::function<T(int)> f = [](int i){return i;}) {return f(42);} }; int main(int argc, char* argv[]) { C<int>::test(); // ERROR = internal compiler error : in tsubst_copy, at cp/pt.c:11354 C<int>::test([](int i){return i;}); // OK return 0; } //----------------------------------------------------------- Tested on GCC 4.6.3 and 4.7.2.
crashes in the same place as Bug 53486, but I think that's ice-on-invalid-code and has a huge testcase, so let's keep this open
Author: ak Date: Sun Jan 20 19:03:22 2013 New Revision: 195321 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=195321 Log: libstdc++: Add mem_order_hle_acquire/release to atomic.h v2 The underlying compiler supports additional __ATOMIC_HLE_ACQUIRE/RELEASE memmodel flags for TSX, but this was not exposed to the C++ wrapper. Handle it there. These are additional flags, so some of assert checks need to mask off the flags before checking the memory model type. libstdc++-v3/: 2013-01-12 Andi Kleen <ak@linux.intel.com> Jonathan Wakely <jwakely.gcc@gmail.com> PR libstdc++/55223 * include/bits/atomic_base.h (__memory_order_modifier): Add __memory_order_mask, __memory_order_modifier_mask, __memory_order_hle_acquire, __memory_order_hle_release. (operator|,operator&): Add. (__cmpexch_failure_order): Rename to __cmpexch_failure_order2. (__cmpexch_failure_order): Add. (clear, store, load, compare_exchange_weak, compare_exchange_strong): Handle flags. * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Add. Added: trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/atomic_base.h
(In reply to comment #2) > The underlying compiler supports additional __ATOMIC_HLE_ACQUIRE/RELEASE > memmodel flags for TSX, but this was not exposed to the C++ wrapper. > Handle it there. I'm confused: This comment seems not to match to the issue problem. Could it be that it should refer to another issue?
Typo in the commit, it should be PR 55233
Author: jason Date: Fri Feb 15 01:26:44 2013 New Revision: 196065 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196065 Log: PR c++/55223 gcc/cp/ * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Fix handling of default argument scope. * mangle.c (write_name): Likewise. libiberty/ * cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_DEFAULT_ARG. (d_print_comp): Likewise. Added: trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-defarg3.C Modified: trunk/gcc/common.opt trunk/gcc/cp/ChangeLog trunk/gcc/cp/mangle.c trunk/gcc/cp/pt.c trunk/libiberty/ChangeLog trunk/libiberty/cp-demangle.c trunk/libiberty/testsuite/demangle-expected
Fixed.
*** Bug 51833 has been marked as a duplicate of this bug. ***
*** Bug 53486 has been marked as a duplicate of this bug. ***