// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify %s
// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify %s -fexperimental-new-constant-interpreter

namespace ns1 {
  auto lstatic = []() static { return 3; }; 
  int (*f2)(void) = lstatic;   
    
}

namespace ns1_1 {
  
  auto lstatic = []() static consteval  //expected-error{{cannot take address of consteval call}} \
                                          expected-note {{declared here}} 
  { return 3; };   
  
  // FIXME: the above error should indicate that it was triggered below.
  int (*f2)(void) = lstatic;   
    
}


namespace ns2 {
  auto lstatic = []() static { return 3; }; 
  constexpr int (*f2)(void) = lstatic;                              
  static_assert(lstatic() == f2());
}

namespace ns3 {
  void main() {
    static int x = 10;
    auto L = []() static { return x; };
  }
}
