brintos

brintos / llvm-project-archived public Read only

0
0
Text · 901 B · bbda6f1 Raw
33 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// Make sure that `_LIBCPP_ASSERT` and `_LIBCPP_ASSUME` are each a single expression.10// This is useful so we can use them  in places that require an expression, such as11// in a constructor initializer list.12 13#include <__cxx03/__assert>14#include <cassert>15 16void f() {17  int i = (_LIBCPP_ASSERT(true, "message"), 3);18  assert(i == 3);19  return _LIBCPP_ASSERT(true, "message");20}21 22void g() {23  int i = (_LIBCPP_ASSUME(true), 3);24  assert(i == 3);25  return _LIBCPP_ASSUME(true);26}27 28int main(int, char**) {29  f();30  g();31  return 0;32}33