diff options
Diffstat (limited to 'gcc/tree.cc')
-rw-r--r-- | gcc/tree.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/tree.cc b/gcc/tree.cc index 18abd1f..446261a 100644 --- a/gcc/tree.cc +++ b/gcc/tree.cc @@ -10012,7 +10012,7 @@ set_call_expr_flags (tree decl, int flags) /* Looping const or pure is implied by noreturn. There is currently no way to declare looping const or looping pure alone. */ gcc_assert (!(flags & ECF_LOOPING_CONST_OR_PURE) - || ((flags & ECF_NORETURN) && (flags & (ECF_CONST | ECF_PURE)))); + || (flags & (ECF_CONST | ECF_PURE))); } @@ -10057,6 +10057,7 @@ build_common_builtin_nodes (void) if (!builtin_decl_explicit_p (BUILT_IN_UNREACHABLE) || !builtin_decl_explicit_p (BUILT_IN_TRAP) || !builtin_decl_explicit_p (BUILT_IN_UNREACHABLE_TRAP) + || !builtin_decl_explicit_p (BUILT_IN_OBSERVABLE_CHKPT) || !builtin_decl_explicit_p (BUILT_IN_ABORT)) { ftype = build_function_type (void_type_node, void_list_node); @@ -10080,6 +10081,12 @@ build_common_builtin_nodes (void) local_define_builtin ("__builtin_trap", ftype, BUILT_IN_TRAP, "__builtin_trap", ECF_NORETURN | ECF_NOTHROW | ECF_LEAF | ECF_COLD); + if (!builtin_decl_explicit_p (BUILT_IN_OBSERVABLE_CHKPT)) + local_define_builtin ("__builtin_observable_checkpoint", ftype, + BUILT_IN_OBSERVABLE_CHKPT, + "__builtin_observable_checkpoint", + ECF_NOTHROW | ECF_LEAF | ECF_CONST + | ECF_LOOPING_CONST_OR_PURE); } if (!builtin_decl_explicit_p (BUILT_IN_MEMCPY) |