1 // RUN: %clang_cc1 -std=c++17 -ast-dump %s | FileCheck %s 2 3 void f() noexcept; 4 5 // CHECK: VarDecl {{.*}} ref 'void (&)()' cinit 6 // CHECK-NEXT: ImplicitCastExpr {{.*}} 'void ()' lvalue <NoOp> 7 // CHECK-NEXT: DeclRefExpr {{.*}} 'void () noexcept' lvalue Function {{.*}} 'f' 'void () noexcept' 8 void (&ref)() = f; 9 10 struct X { 11 typedef void (&ref)() noexcept; 12 operator ref(); 13 } x; 14 15 // CHECK: VarDecl {{.*}} xp 'void (&)()' cinit 16 // CHECK-NEXT: ImplicitCastExpr {{.*}} 'void ()' lvalue <NoOp> 17 // CHECK-NEXT: ImplicitCastExpr {{.*}} 'void () noexcept' lvalue <UserDefinedConversion> 18 void (&xp)() = x; 19