xref: /llvm-project/clang/test/CodeGenCXX/mangle-literal-suffix.cpp (revision c9ba1bd20a7d861feb3a3dd7bbe277c6646ebf47)
1*c9ba1bd2SBenjamin Kramer // RUN: %clang_cc1 -triple mips-none-none -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK -check-prefix=FP64
2*c9ba1bd2SBenjamin Kramer // RUN: %clang_cc1 -triple powerpc64-none-none -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK -check-prefix=FP128
3e9f130cfSRichard Smith 
g3(char (& buffer)[sizeof (T ()+5.0)])4e9f130cfSRichard Smith template <class T> void g3(char (&buffer)[sizeof(T() + 5.0)]) {}
530ef77a7SRichard Smith template void g3<int>(char (&)[sizeof(double)]);
630ef77a7SRichard Smith // CHECK: _Z2g3IiEvRAszplcvT__ELd4014000000000000E_c
7e9f130cfSRichard Smith 
g4(char (& buffer)[sizeof (T ()+5.0L)])8e9f130cfSRichard Smith template <class T> void g4(char (&buffer)[sizeof(T() + 5.0L)]) {}
930ef77a7SRichard Smith template void g4<int>(char (&)[sizeof(long double)]);
10*c9ba1bd2SBenjamin Kramer // FP64: _Z2g4IiEvRAszplcvT__ELe4014000000000000E_c
11*c9ba1bd2SBenjamin Kramer // FP128: _Z2g4IiEvRAszplcvT__ELg00000000000000004014000000000000E_c
12e9f130cfSRichard Smith 
g5(char (& buffer)[sizeof (T ()+5)])13e9f130cfSRichard Smith template <class T> void g5(char (&buffer)[sizeof(T() + 5)]) {}
1430ef77a7SRichard Smith template void g5<int>(char (&)[sizeof(int)]);
15e9f130cfSRichard Smith // CHECK: _Z2g5IiEvRAszplcvT__ELi5E_c
16e9f130cfSRichard Smith 
g6(char (& buffer)[sizeof (T ()+5L)])17e9f130cfSRichard Smith template <class T> void g6(char (&buffer)[sizeof(T() + 5L)]) {}
1830ef77a7SRichard Smith template void g6<int>(char (&)[sizeof(long int)]);
1930ef77a7SRichard Smith // CHECK: _Z2g6IiEvRAszplcvT__ELl5E_c
20