xref: /llvm-project/clang/test/AST/ast-dump-functionprototype.cpp (revision f9ead46931aef2978ddf350ba6523638175d7861)
1 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -Wno-dynamic-exception-spec -ast-dump %s | FileCheck -strict-whitespace %s
2 
3 struct A {};
4 struct B {};
5 
6 typedef void (type1)() noexcept(10 > 5);
7 
8 // CHECK:      TypedefDecl {{.*}} type1 'void () noexcept(10 > 5)'
9 // CHECK-NEXT: `-ParenType {{.*}}
10 // CHECK-NEXT:   `-FunctionProtoType {{.*}} 'void () noexcept(10 > 5)' exceptionspec_noexcept_true cdecl
11 // CHECK-NEXT:     |-NoexceptExpr: ConstantExpr {{.*}} 'bool'
12 // CHECK-NEXT:     | `-value: Int 1
13 // CHECK-NEXT:     `-BuiltinType {{.*}} 'void'
14 
15 typedef void (type2)() throw(A, B);
16 
17 // CHECK:      TypedefDecl {{.*}} type2 'void () throw(A, B)'
18 // CHECK-NEXT: `-ParenType {{.*}}
19 // CHECK-NEXT:   `-FunctionProtoType {{.*}} 'void () throw(A, B)' exceptionspec_dynamic cdecl
20 // CHECK-NEXT:     |-Exceptions: 'A', 'B'
21 // CHECK-NEXT:     `-BuiltinType {{.*}} 'void'
22 
23