// RUN: %clang_cc1 -fsyntax-only -Wno-dangling-gsl -Wreturn-stack-address -verify %s

struct [[gsl::Owner(int)]] MyIntOwner {
  MyIntOwner();
  int &operator*();
};

struct [[gsl::Pointer(int)]] MyIntPointer {
  MyIntPointer(int *p = nullptr);
  MyIntPointer(const MyIntOwner &);
  int &operator*();
  MyIntOwner toOwner();
};

int &f() {
  int i;
  return i; // expected-warning {{reference to stack memory associated with local variable 'i' returned}}
}

MyIntPointer g() {
  MyIntOwner o;
  return o; // No warning, it is disabled.
}
