1*a42e515eSJulian Brown // RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -ast-print %s | FileCheck %s 2*a42e515eSJulian Brown // expected-no-diagnostics 3*a42e515eSJulian Brown 4*a42e515eSJulian Brown extern int bar(int); 5*a42e515eSJulian Brown 6*a42e515eSJulian Brown int foo(int arg) 7*a42e515eSJulian Brown { 8*a42e515eSJulian Brown #pragma omp assume no_openmp_routines 9*a42e515eSJulian Brown { 10*a42e515eSJulian Brown auto fn = [](int x) { return bar(x); }; 11*a42e515eSJulian Brown // CHECK: auto fn = [](int x) { 12*a42e515eSJulian Brown return fn(5); 13*a42e515eSJulian Brown } 14*a42e515eSJulian Brown } 15*a42e515eSJulian Brown 16*a42e515eSJulian Brown class C { 17*a42e515eSJulian Brown public: 18*a42e515eSJulian Brown int foo(int a); 19*a42e515eSJulian Brown }; 20*a42e515eSJulian Brown 21*a42e515eSJulian Brown // We're really just checking that this parses. All the assumptions are thrown 22*a42e515eSJulian Brown // away immediately for now. 23*a42e515eSJulian Brown int C::foo(int a) 24*a42e515eSJulian Brown { 25*a42e515eSJulian Brown #pragma omp assume holds(sizeof(void*) == 8) absent(parallel) 26*a42e515eSJulian Brown { 27*a42e515eSJulian Brown auto fn = [](int x) { return bar(x); }; 28*a42e515eSJulian Brown // CHECK: auto fn = [](int x) { 29*a42e515eSJulian Brown return fn(5); 30*a42e515eSJulian Brown } 31*a42e515eSJulian Brown } 32