// RUN: %clang_cc1 -std=c++20 -fsyntax-only -ast-dump %s | FileCheck %s struct Node { long val; }; template void CallNew() { new Node(0); } // CHECK-LABEL: FunctionTemplateDecl {{.*}} CallNew // CHECK: |-FunctionDecl {{.*}} CallNew 'void ()' // CHECK: `-CXXNewExpr {{.*}} 'operator new' // CHECK: `-CXXParenListInitExpr {{.*}} 'Node' // CHECK: `-ImplicitCastExpr {{.*}} 'long' // CHECK: `-IntegerLiteral {{.*}} 'int' 0 // CHECK: `-FunctionDecl {{.*}} used CallNew 'void ()' implicit_instantiation // CHECK: |-TemplateArgument integral 'true' // CHECK: `-CXXNewExpr {{.*}} 'operator new' // CHECK: `-CXXParenListInitExpr {{.*}} 'Node' // CHECK: `-ImplicitCastExpr {{.*}} 'long' // CHECK: `-IntegerLiteral {{.*}} 'int' 0 void f() { (void)CallNew; }