]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/blob
096ec080c9b453a861966a23b023452b8eafd924
[thirdparty/openembedded/openembedded-core-contrib.git] /
1 From 3a987d8e4a8c885fe7fc54595ebdd82d5291e1e7 Mon Sep 17 00:00:00 2001
2 From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
3 Date: Tue, 29 Mar 2011 14:24:30 +0000
4 Subject: [PATCH 024/200] * except.c (build_noexcept_spec): Call cxx_constant_value after
5 converting to bool.
6
7 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@171665 138bc75d-0d04-0410-961f-82ee72b054a4
8
9 index c05e507..a814d67 100644
10 --- a/gcc/cp/except.c
11 +++ b/gcc/cp/except.c
12 @@ -1203,10 +1203,10 @@ build_noexcept_spec (tree expr, int complain)
13 it until instantiation. */
14 if (!processing_template_decl)
15 {
16 - expr = cxx_constant_value (expr);
17 expr = perform_implicit_conversion_flags (boolean_type_node, expr,
18 complain,
19 LOOKUP_NORMAL);
20 + expr = cxx_constant_value (expr);
21 }
22 if (expr == boolean_true_node)
23 return noexcept_true_spec;
24 new file mode 100644
25 index 0000000..7bf961b
26 --- /dev/null
27 +++ b/gcc/testsuite/g++.dg/cpp0x/constexpr-noexcept5.C
28 @@ -0,0 +1,15 @@
29 +// { dg-options -std=c++0x }
30 +
31 +struct booleable {
32 + bool data;
33 + constexpr explicit operator bool() { return data; }
34 +};
35 +
36 +constexpr booleable truthy_func() { return {true}; }
37 +
38 +void funky() noexcept(truthy_func()) {}
39 +
40 +int main() {
41 + funky();
42 + return 0;
43 +}
44 --
45 1.7.0.4
46