コード例 #1
0
ファイル: exceptions.cpp プロジェクト: doniexun/stanse
void bar()
{
    mutex m;
    m.acquire();
    may_throw();
    m.release();
}
コード例 #2
0
ファイル: my_class.cpp プロジェクト: tim42/reflective
void sample::my_class::my_function(bool value)
{
  neam::r::function_call self_call(N_PRETTY_NAME_INFO("sample::my_class::my_function(bool)"));

  if (value == get_top_value())
  {
    may_throw(0);
  }
}
コード例 #3
0
ファイル: Transform.cpp プロジェクト: kleopatra999/redex
bool ends_with_may_throw(Block* p) {
  for (auto last = p->rbegin(); last != p->rend(); ++last) {
    if (last->type != MFLOW_OPCODE) {
      continue;
    }
    return may_throw(last->insn->opcode());
  }
  return true;
}
コード例 #4
0
ファイル: nrvo.cpp プロジェクト: AlexDenisov/clang
X test5() {
  try {
    may_throw();
  } catch (X x) {
    // CHECK-EH: invoke {{.*}} @_ZN1XC1ERKS_
    // CHECK-EH: call void @__cxa_end_catch()
    // CHECK-EH: ret void
    return x;
  }
}
コード例 #5
0
ファイル: exceptions.cpp プロジェクト: doniexun/stanse
void foo(mutex & m)
{
    m.acquire();
    may_throw();
    m.release();
}
コード例 #6
0
void never_throws() noexcept(true) {
  may_throw();
}
コード例 #7
0
ファイル: constexpr-throw.C プロジェクト: Nodplus/gcc
// { dg-options -std=c++11 }

constexpr int may_throw(bool decide) {
	return decide ? 42 : throw -1; // { dg-error "throw" }
}

constexpr int x = may_throw(false); // { dg-message "may_throw" }
constexpr int y = may_throw(true);