#include "foo.h"

#define MACRO_FOO                                                              \
  { void; }
#define MACRO_BAR(B) B

Foo::Foo() {}
void Foo::A() {}
void Foo::B(int i) {}
int Foo::C(int i) { return i; }
int Foo::D(bool b) const { return 1; }
void Foo::E() {}
int Foo::F(int i) { return i; }
void Foo::G(const char *fmt...) {}
Foo Foo::H() { return Foo(); }
void Foo::I() const { MACRO_FOO; }
Bar Foo::J() const { return MACRO_BAR(Bar()); }
Bar Foo::K(void *v) const { return Bar(); }
Bar &Foo::L() const {
  Bar *b = new Bar();
  return *b;
};
Bar *Foo::M() const {
  Bar *b = new Bar();
  return b;
};
