public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/46134] New: constexpr vs. defaulted ctor
@ 2010-10-22 15:30 bkoz at gcc dot gnu.org
2010-10-22 15:31 ` [Bug c++/46134] " bkoz at gcc dot gnu.org
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2010-10-22 15:30 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
Summary: constexpr vs. defaulted ctor
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: bkoz@gcc.gnu.org
Changing std::chrono::duration's default constructor to "default" from an empty
body causes a new error.
Ie:
diff --git a/libstdc++-v3/include/std/chrono b/libstdc++-v3/include/std/chrono
index bbcb0ff..d346049 100644
--- a/libstdc++-v3/include/std/chrono
+++ b/libstdc++-v3/include/std/chrono
@@ -209,7 +209,7 @@ namespace std
static_assert(_Period::num > 0, "period must be positive");
// 20.8.3.1 construction / copy / destroy
- constexpr duration() { }
+ constexpr duration() = default;
template<typename _Rep2, typename = typename
enable_if<is_convertible<_Rep2, rep>::value
See attached pre-processed file for simple reproducer. Error message is:
In file included from
/mnt/share/src/gcc.git-constexpr/libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc:22:0:
/mnt/share/src/gcc.git-constexpr/libstdc++-v3/testsuite/util/testsuite_common_types.h:
In member function ‘void
__gnu_test::constexpr_default_constructible::operator()()::_Concept::__constraint()
[with _Tp = std::chrono::duration<long int>]’:
/mnt/share/src/gcc.git-constexpr/libstdc++-v3/testsuite/util/testsuite_common_types.h:629:17:
instantiated from ‘void
__gnu_test::constexpr_default_constructible::operator()() [with _Tp =
std::chrono::duration<long int>]’
/mnt/share/src/gcc.git-constexpr/libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc:27:48:
instantiated from here
/mnt/share/src/gcc.git-constexpr/libstdc++-v3/testsuite/util/testsuite_common_types.h:625:20:
error: uninitialized const ‘__v’ [-fpermissive]
/mnt/share/bld/gcc.git-constexpr/x86_64-unknown-linux-gnu/libstdc++-v3/include/chrono:201:14:
note: ‘const struct std::chrono::duration<long int>’ has no user-provided
default constructor
/mnt/share/bld/gcc.git-constexpr/x86_64-unknown-linux-gnu/libstdc++-v3/include/chrono:212:12:
note: constructor is not user-provided because it is explicitly defaulted in
the class body
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/46134] constexpr vs. defaulted ctor
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
@ 2010-10-22 15:31 ` bkoz at gcc dot gnu.org
2010-10-22 18:47 ` jason at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: bkoz at gcc dot gnu.org @ 2010-10-22 15:31 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
--- Comment #1 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2010-10-22 15:31:36 UTC ---
Created attachment 22124
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22124
pre-processed sources
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/46134] constexpr vs. defaulted ctor
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
2010-10-22 15:31 ` [Bug c++/46134] " bkoz at gcc dot gnu.org
@ 2010-10-22 18:47 ` jason at gcc dot gnu.org
2010-11-02 2:36 ` jason at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: jason at gcc dot gnu.org @ 2010-10-22 18:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
CC| |jason at gcc dot gnu.org
Resolution| |INVALID
--- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> 2010-10-22 18:47:15 UTC ---
Not a bug.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/46134] constexpr vs. defaulted ctor
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
2010-10-22 15:31 ` [Bug c++/46134] " bkoz at gcc dot gnu.org
2010-10-22 18:47 ` jason at gcc dot gnu.org
@ 2010-11-02 2:36 ` jason at gcc dot gnu.org
2010-11-02 9:48 ` redi at gcc dot gnu.org
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: jason at gcc dot gnu.org @ 2010-11-02 2:36 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> 2010-11-02 02:35:33 UTC ---
Author: jason
Date: Tue Nov 2 02:35:28 2010
New Revision: 166171
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166171
Log:
* include/std/chrono: Extend constexpr application.
* testsuite/util/testsuite_common_types.h
(constexpr_default_constructible, constexpr_single_value_constructible)
: Add comments about implied constraints.
* testsuite/20_util/duration/cons/constexpr.cc: Activate all tests.
* testsuite/20_util/time_point/cons/constexpr.cc: Same.
* testsuite/20_util/time_point/requirements/constexpr_functions.cc:
Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust line
numbers.
* testsuite/20_util/time_point_cast/constexpr.cc: New.
* include/std/bitset: Use __SIZEOF_* macros to re-create original
logic instead of slipshod application of
std::numeric_limits<T>::max() macros.
* testsuite/util/testsuite_common_types.h
(constexpr_default_constructible): Modify.
* include/std/chrono: Tested constexpr.
* testsuite/20_util/duration_cast/constexpr.cc: New.
* testsuite/20_util/time_point/cons/constexpr.cc: New.
* testsuite/20_util/duration/cons/constexpr.cc: Add single_value tests.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust
line numbers.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/time_point/cons/constexpr.cc: Add single_value
tests.
* testsuite/20_util/time_point/requirements/constexpr_functions.cc: Add.
* testsuite/util/testsuite_common_types.h: Adjust init.
* include/std/chrono (duration): Remove defaulted constructor,
replace with mem-init list.
* testsuite/20_util/duration/cons/constexpr.cc: Add single value.
* testsuite/20_util/duration/requirements/constexpr_functions.cc:
Add non-static member functions.
* testsuite/20_util/default_delete/cons/constexpr.cc: New, xfail.
* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Same.
* testsuite/20_util/shared_ptr/cons/constexpr.cc: Same.
* testsuite/20_util/time_point/requirements/constexpr_functions.cc:
Same.
* testsuite/20_util/unique_ptr/cons/constexpr.cc: Same.
* testsuite/20_util/weak_ptr/cons/constexpr.cc: Same.
* include/std/bitset: Add constexpr as per N3126 draft.
* testsuite/23_containers/bitset/cons/constexpr.cc: New.
* testsuite/23_containers/bitset/requirements/constexpr_functions.cc:
New.
* testsuite/util/testsuite_common_types.h: Reset condition.
* include/bits/random.h: Remove misleading comments.
* include/bits/regex.h: Add constexpr.
* testsuite/28_regex/05_constants/syntax_option_type.cc: Add tests.
* testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc: New.
PR libstdc++/46134
* include/std/chrono: Use default constructor.
* testsuite/util/testsuite_common_types.h
(constexpr_default_constructible): Adjust condition.
PR libstdc++/46133
* include/std/complex: Adjust complex specialization default
constructors for constexpr.
* testsuite/26_numerics/complex/cons/constexpr.cc: Enable tests.
* include/bits/random.h: Adjust for constexpr as per N3126 draft.
* testsuite/26_numerics/random/discard_block_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/discard_block_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/independent_bits_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/linear_congruential_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/mersenne_twister_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/shuffle_order_engine/requirements/
constexpr_functions.cc: New.
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
constexpr_data.cc: New.
* testsuite/26_numerics/random/subtract_with_carry_engine/requirements/
constexpr_functions.cc: New.
* include/bits/stream_iterator.h: Add constexpr as per N3126 draft.
* include/bits/streambuf_iterator.h: Same.
* include/std/complex: Same.
* testsuite/24_iterators/istream_iterator/cons/constexpr.cc: New.
* testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc: New.
* testsuite/26_numerics/complex/cons/constexpr.cc: New.
* testsuite/26_numerics/complex/requirements/constexpr_functions.cc:
New.
* include/bits/char_traits.h: Add constexpr as per N3126 draft.
* testsuite/21_strings/char_traits/requirements/constexpr_functions.cc:
New.
* include/tr1_impl/array: Add constexpr as per N3126 draft.
* testsuite/23_containers/array/requirements/
constexpr_functions.cc: New.
* include/bits/shared_ptr.h: Revert changes.
* include/bits/unique_ptr.h: Same.
* include/std/chrono: Adjust.
* include/tr1_impl/type_traits: Same.
* testsuite/util/testsuite_common_types.h: Add test functors.
* testsuite/20_util/duration/cons/constexpr.cc: New.
* testsuite/20_util/duration/requirements/constexpr_functions.cc: Same.
* testsuite/20_util/pair/cons/constexpr.cc: Same.
* testsuite/20_util/ratio/requirements/constexpr_data.cc: Same.
* testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc: Same.
* testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc: Same.
* testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc: Same.
* testsuite/30_threads/call_once/constexpr.cc: Same.
* testsuite/30_threads/mutex/cons/constexpr.cc: Same.
* testsuite/30_threads/once_flag/cons/constexpr.cc: Same.
* testsuite/tr1/4_metaprogramming/integral_constant/requirements/
constexpr_data.cc: Same.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same.
* include/bits/allocator.h: Add constexpr as per N3126 draft.
* include/bits/ios_base.h: Same.
* include/bits/shared_ptr.h: Same.
* include/bits/unique_ptr.h: Same.
* include/bits/stl_iterator.h: Same.
* include/bits/stl_pair.h: Same.
* include/std/tuple: Same.
* include/tr1_impl/type_traits: Same.
* include/std/chrono: Same.
* include/std/ratio: Same.
* include/std/mutex: Same.
* src/mutex.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Adjust.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* doc/doxygen/user.cfg.in: Replace _GLIBCXX_USE_CONSTEXPR,
_GLIBCXX_CONSTEXPR for doxygen generation.
* src/limits.cc: Undef.
* testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust.
* testsuite/29_atomics/atomic_address/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.c: Same.
* testsuite/18_support/numeric_limits/constexpr.cc: To...
* testsuite/18_support/numeric_limits/requirements/
constexpr_data.cc, constexpr_functions.cc: ...this
* testsuite/util/testsuite_common_types.h
(constexpr_single_value_constructible): Add.
* testsuite/29_atomics/atomic/cons/constexpr.cc: Adjust name.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_address/cons/constexpr.cc: New.
* testsuite/18_support/numeric_limits/constexpr.cc: New.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust line numbers.
* testsuite/29_atomics/atomic/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: Same.
* testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: Same.
* include/bits/c++config (_GLIBCXX_CONSTEXPR): Add.
(_GLIBCXX_USE_CONSTEXPR): Add.
* include/std/limits: Use it.
* src/limits.cc: Adjust.
* testsuite/ext/profile/mutex_extensions.cc: Change line number.
* include/bits/atomic_0.h: Rework for N3126 draft, add constexpr.
* include/bits/atomic_2.h: Same.
* include/bits/atomic_base.h: Same.
* include/std/atomic: Same.
* src/atomic.cc: Same.
* include/bits/atomicfwd_c.h: Remove.
* include/bits/atomicfwd_cxx.h: Remove.
* include/c_compatibility/stdatomic.h: Remove.
* include/Makefile.am: Remove atomicfwd_c.h, atomicfwd_cxx.h,
stdatomic.h.
* include/Makefile.in: Regenerate.
* doc/xml/manual/using.xml: Update list of header files for changes.
* testsuite/util/testsuite_common_types.h
(constexpr_constructible): Add.
* testsuite/29_atomics/atomic/cons/constexpr.cc: New.
* testsuite/29_atomics/atomic_integral/cons/constexpr.cc: New.
* testsuite/17_intro/headers/c++200x/stdc++.cc: Modify.
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_address/cons/assign_neg.cc: Same.
* testsuite/29_atomics/atomic_flag/cons/1.cc: Same.
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Same.
* testsuite/29_atomics/headers/atomic/macros.cc: Same.
* testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Same.
* testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc: Same.
* testsuite/29_atomics/atomic_flag/test_and_set/implicit.c: Remove.
* testsuite/29_atomics/atomic_flag/test_and_set/explicit.c: Same.
* testsuite/29_atomics/atomic_flag/clear/1.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/debug_mode.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/functions.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/macros.c: Same.
* testsuite/29_atomics/headers/stdatomic.h/types.c: Same.
* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.16.
Added:
trunk/libstdc++-v3/testsuite/18_support/numeric_limits/cons/
trunk/libstdc++-v3/testsuite/18_support/numeric_limits/cons/default.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.c
trunk/libstdc++-v3/testsuite/18_support/numeric_limits/cons/default_c++0x.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_data.cc
trunk/libstdc++-v3/testsuite/18_support/numeric_limits/requirements/constexpr_functions.cc
trunk/libstdc++-v3/testsuite/20_util/default_delete/
trunk/libstdc++-v3/testsuite/20_util/default_delete/cons/
trunk/libstdc++-v3/testsuite/20_util/default_delete/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/duration/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/duration_cast/
trunk/libstdc++-v3/testsuite/20_util/duration_cast/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/
trunk/libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/pair/cons/
trunk/libstdc++-v3/testsuite/20_util/pair/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/20_util/ratio/requirements/
trunk/libstdc++-v3/testsuite/20_util/ratio/requirements/constexpr_data.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/shared_ptr/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/time_point/cons/
trunk/libstdc++-v3/testsuite/20_util/time_point/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/time_point/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/time_point_cast/
trunk/libstdc++-v3/testsuite/20_util/time_point_cast/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/cons/
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/21_strings/char_traits/requirements/constexpr_functions.cc
trunk/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/bitset/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/23_containers/bitset/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/
trunk/libstdc++-v3/testsuite/24_iterators/istream_iterator/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/
trunk/libstdc++-v3/testsuite/24_iterators/istreambuf_iterator/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/complex/cons/
trunk/libstdc++-v3/testsuite/26_numerics/complex/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/complex/requirements/
trunk/libstdc++-v3/testsuite/26_numerics/complex/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_data.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/discard_block_engine/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/independent_bits_engine/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_data.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_data.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/mersenne_twister_engine/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_data.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/shuffle_order_engine/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_data.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/26_numerics/random/subtract_with_carry_engine/requirements/constexpr_functions.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/27_io/ios_base/types/fmtflags/constexpr_operators.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/27_io/ios_base/types/iostate/constexpr_operators.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/debug_mode.c
trunk/libstdc++-v3/testsuite/27_io/ios_base/types/openmode/constexpr_operators.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/28_regex/08_basic_regex/requirements/
trunk/libstdc++-v3/testsuite/28_regex/08_basic_regex/requirements/constexpr_data.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/30_threads/call_once/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/30_threads/mutex/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/30_threads/once_flag/
trunk/libstdc++-v3/testsuite/30_threads/once_flag/cons/
trunk/libstdc++-v3/testsuite/30_threads/once_flag/cons/constexpr.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/tr1/4_metaprogramming/integral_constant/requirements/constexpr_data.cc
- copied, changed from r166170,
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
Removed:
trunk/libstdc++-v3/include/bits/atomicfwd_c.h
trunk/libstdc++-v3/include/bits/atomicfwd_cxx.h
trunk/libstdc++-v3/include/c_compatibility/stdatomic.h
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.c
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.c
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.c
trunk/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/debug_mode.c
trunk/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/functions.c
trunk/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/macros.c
trunk/libstdc++-v3/testsuite/29_atomics/headers/stdatomic.h/types.c
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/config/abi/pre/gnu.ver
trunk/libstdc++-v3/doc/doxygen/user.cfg.in
trunk/libstdc++-v3/doc/xml/manual/using.xml
trunk/libstdc++-v3/include/Makefile.am
trunk/libstdc++-v3/include/Makefile.in
trunk/libstdc++-v3/include/bits/allocator.h
trunk/libstdc++-v3/include/bits/atomic_0.h
trunk/libstdc++-v3/include/bits/atomic_2.h
trunk/libstdc++-v3/include/bits/atomic_base.h
trunk/libstdc++-v3/include/bits/c++config
trunk/libstdc++-v3/include/bits/char_traits.h
trunk/libstdc++-v3/include/bits/ios_base.h
trunk/libstdc++-v3/include/bits/random.h
trunk/libstdc++-v3/include/bits/random.tcc
trunk/libstdc++-v3/include/bits/regex.h
trunk/libstdc++-v3/include/bits/stl_iterator.h
trunk/libstdc++-v3/include/bits/stl_pair.h
trunk/libstdc++-v3/include/bits/stream_iterator.h
trunk/libstdc++-v3/include/bits/streambuf_iterator.h
trunk/libstdc++-v3/include/bits/unique_ptr.h
trunk/libstdc++-v3/include/std/atomic
trunk/libstdc++-v3/include/std/bitset
trunk/libstdc++-v3/include/std/chrono
trunk/libstdc++-v3/include/std/complex
trunk/libstdc++-v3/include/std/future
trunk/libstdc++-v3/include/std/limits
trunk/libstdc++-v3/include/std/mutex
trunk/libstdc++-v3/include/std/ratio
trunk/libstdc++-v3/include/std/tuple
trunk/libstdc++-v3/include/tr1_impl/array
trunk/libstdc++-v3/include/tr1_impl/type_traits
trunk/libstdc++-v3/src/atomic.cc
trunk/libstdc++-v3/src/future.cc
trunk/libstdc++-v3/src/limits.cc
trunk/libstdc++-v3/src/mutex.cc
trunk/libstdc++-v3/testsuite/17_intro/headers/c++200x/stdc++.cc
trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg1.cc
trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg2.cc
trunk/libstdc++-v3/testsuite/20_util/duration/requirements/typedefs_neg3.cc
trunk/libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc
trunk/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc
trunk/libstdc++-v3/testsuite/28_regex/05_constants/syntax_option_type.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic/cons/copy_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_address/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/1.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/copy_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/atomic_integral/operators/increment_neg.cc
trunk/libstdc++-v3/testsuite/29_atomics/headers/atomic/macros.cc
trunk/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x.cc
trunk/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++0x_neg.cc
trunk/libstdc++-v3/testsuite/ext/profile/mutex_extensions.cc
trunk/libstdc++-v3/testsuite/util/testsuite_abi.cc
trunk/libstdc++-v3/testsuite/util/testsuite_common_types.h
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/46134] constexpr vs. defaulted ctor
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
` (2 preceding siblings ...)
2010-11-02 2:36 ` jason at gcc dot gnu.org
@ 2010-11-02 9:48 ` redi at gcc dot gnu.org
2010-11-02 9:58 ` redi at gcc dot gnu.org
2010-11-02 12:33 ` redi at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2010-11-02 9:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-11-02 09:48:13 UTC ---
the adjusted static assertion in unique_ptr is wrong, it will now reject any
pointer deleters - it should only assert when no initializer is given for a
deleter of pointer (or reference) type
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/46134] constexpr vs. defaulted ctor
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
` (3 preceding siblings ...)
2010-11-02 9:48 ` redi at gcc dot gnu.org
@ 2010-11-02 9:58 ` redi at gcc dot gnu.org
2010-11-02 12:33 ` redi at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2010-11-02 9:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-11-02 09:58:26 UTC ---
I was recently playing with the following trick to remove the static_assert
from the body of the constexpr constructors:
struct _Undefined;
typedef typename std::conditional<is_pointer<_Dp>::value, _Undefined,
_Dp>::type __uninitialized_deleter;
constexpr
unique_ptr() : _M_t(pointer(), __uninitialized_deleter()) { }
If _Dp is a pointer this tries to create a temporary of incomplete type, which
is ill-formed and gives an error about "uninitialized_deleter". Otherwise, it
value-initializes the deleter.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug c++/46134] constexpr vs. defaulted ctor
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
` (4 preceding siblings ...)
2010-11-02 9:58 ` redi at gcc dot gnu.org
@ 2010-11-02 12:33 ` redi at gcc dot gnu.org
5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2010-11-02 12:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46134
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-11-02 12:33:17 UTC ---
(In reply to comment #5)
> constexpr
> unique_ptr() : _M_t(pointer(), __uninitialized_deleter()) { }
IIUC since that tuple constructor is not constexpr, that makes this unique_ptr
constructor not a constexpr constructor either.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2010-11-02 12:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-22 15:30 [Bug c++/46134] New: constexpr vs. defaulted ctor bkoz at gcc dot gnu.org
2010-10-22 15:31 ` [Bug c++/46134] " bkoz at gcc dot gnu.org
2010-10-22 18:47 ` jason at gcc dot gnu.org
2010-11-02 2:36 ` jason at gcc dot gnu.org
2010-11-02 9:48 ` redi at gcc dot gnu.org
2010-11-02 9:58 ` redi at gcc dot gnu.org
2010-11-02 12:33 ` redi at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).