1*c83602fdSAwanish Pandey //  Test for debug info for C++11 auto return member functions
2*c83602fdSAwanish Pandey // RUN: %clang_cc1 -dwarf-version=5  -emit-llvm -triple x86_64-linux-gnu %s -o - \
3*c83602fdSAwanish Pandey // RUN:   -O0 -disable-llvm-passes \
4*c83602fdSAwanish Pandey // RUN:   -debug-info-kind=standalone \
5*c83602fdSAwanish Pandey // RUN: | FileCheck %s
6*c83602fdSAwanish Pandey 
7*c83602fdSAwanish Pandey // CHECK: !DISubprogram(name: "findMax",{{.*}}, type: ![[FUN_TYPE:[0-9]+]],{{.*}}
8*c83602fdSAwanish Pandey 
9*c83602fdSAwanish Pandey // CHECK: ![[FUN_TYPE]] = !DISubroutineType(types: ![[TYPE_NODE:[0-9]+]])
10*c83602fdSAwanish Pandey // CHECK-NEXT: ![[TYPE_NODE]] = !{![[DOUBLE_TYPE:[0-9]+]], {{.*}}
11*c83602fdSAwanish Pandey // CHECK-NEXT: ![[DOUBLE_TYPE]] = !DIBasicType(name: "double", {{.*}})
12*c83602fdSAwanish Pandey 
13*c83602fdSAwanish Pandey // CHECK: !DISubroutineType(types: ![[TYPE_DECL_NODE:[0-9]+]])
14*c83602fdSAwanish Pandey // CHECK-NEXT: ![[TYPE_DECL_NODE]] = !{![[AUTO_TYPE:[0-9]+]], {{.*}}
15*c83602fdSAwanish Pandey // CHECK-NEXT: ![[AUTO_TYPE]] = !DIBasicType(tag: DW_TAG_unspecified_type, name: "auto")
16*c83602fdSAwanish Pandey struct myClass {
17*c83602fdSAwanish Pandey   auto findMax();
18*c83602fdSAwanish Pandey };
19*c83602fdSAwanish Pandey 
findMax()20*c83602fdSAwanish Pandey auto myClass::findMax() {
21*c83602fdSAwanish Pandey   return 0.0;
22*c83602fdSAwanish Pandey }
23