// RUN: %clang_cc1 -triple x86_64 -verify=expected,dev -std=c++11\
// RUN:            -verify-ignore-unexpected=note \
// RUN:            -fopenmp -fopenmp-version=45 -o - %s

// RUN: %clang_cc1 -triple x86_64 -verify=expected,dev -std=c++11\
// RUN:            -verify-ignore-unexpected=note \
// RUN:            -fopenmp -o - %s

// expected-no-diagnostics

// Test no infinite recursion in DeferredDiagnosticEmitter.
constexpr int foo(int *x) {
  return 0;
}

int a = foo(&a);

// Test no crash when both caller and callee have target directives.
int foo();

class B {
public:
  void barB(int *isHost) {
  #pragma omp target map(tofrom: isHost)
     {
       *isHost = foo();
     }
  }
};

class A : public B {
public:
  void barA(int *isHost) {
  #pragma omp target map(tofrom: isHost)
     {
       barB(isHost);
     }
  }
};
