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