Backported from mainline
2019-11-05 Jakub Jelinek <jakub@redhat.com>
PR c++/92343
* constexpr.c (potential_constant_expression_1): Return true rather
than false for PREDICT_EXPR.
* g++.dg/cpp2a/attr-likely6.C: New test.
From-SVN: r277988
2019-11-08 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
+ 2019-11-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/92343
+ * constexpr.c (potential_constant_expression_1): Return true rather
+ than false for PREDICT_EXPR.
+
2019-10-31 Jakub Jelinek <jakub@redhat.com>
PR c++/90947
case LABEL_DECL:
case LABEL_EXPR:
case CASE_LABEL_EXPR:
+ case PREDICT_EXPR:
case CONST_DECL:
case SIZEOF_EXPR:
case ALIGNOF_EXPR:
case CLEANUP_STMT:
case EMPTY_CLASS_EXPR:
- case PREDICT_EXPR:
return false;
case GOTO_EXPR:
2019-11-08 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
+ 2019-11-05 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/92343
+ * g++.dg/cpp2a/attr-likely6.C: New test.
+
2019-10-31 Jakub Jelinek <jakub@redhat.com>
PR preprocessor/92296
--- /dev/null
+// PR c++/92343
+// { dg-do compile { target c++14 } }
+
+constexpr bool
+foo (bool x)
+{
+ if (x)
+ [[unlikely]] return true;
+ else
+ [[likely]] return false;
+}
+
+static_assert (foo (true), "");
+static_assert (!foo (false), "");