diff options
author | Marek Polacek <polacek@redhat.com> | 2018-05-08 19:30:57 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2018-05-08 19:30:57 +0000 |
commit | 0e45c664e3f08eac144e82918a38174873ec176d (patch) | |
tree | b53531e258523915480e137a1f73e3191a7d8627 /gcc/cp | |
parent | 3b275e65cbe1b290605df43cb10be797f2c9fb99 (diff) | |
download | gcc-0e45c664e3f08eac144e82918a38174873ec176d.zip gcc-0e45c664e3f08eac144e82918a38174873ec176d.tar.gz gcc-0e45c664e3f08eac144e82918a38174873ec176d.tar.bz2 |
re PR c++/85695 (if constexpr misevaluates typedefed type value)
PR c++/85695
* semantics.c (finish_if_stmt_cond): See through typedefs.
* g++.dg/cpp1z/constexpr-if22.C: New test.
From-SVN: r260049
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6599115..d80c15d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2018-05-08 Marek Polacek <polacek@redhat.com> + + PR c++/85695 + * semantics.c (finish_if_stmt_cond): See through typedefs. + 2018-05-07 Jason Merrill <jason@redhat.com> PR c++/85646 - lambda visibility. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 2b2b51b..195286c 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -736,7 +736,7 @@ finish_if_stmt_cond (tree cond, tree if_stmt) && !instantiation_dependent_expression_p (cond) /* Wait until instantiation time, since only then COND has been converted to bool. */ - && TREE_TYPE (cond) == boolean_type_node) + && TYPE_MAIN_VARIANT (TREE_TYPE (cond)) == boolean_type_node) { cond = instantiate_non_dependent_expr (cond); cond = cxx_constant_value (cond, NULL_TREE); |