// This file is distributed under the University of Illinois Open Source License. | |
// See LICENSE.TXT for details. | |
// RUN: cxx_compiler cxx_11 -c %s -o %t.o | |
// RUN: bindump %t.o | FileCheck prefixes %s | |
// long double (difference in format) | |
// CHECK-DAG: _Z2g4IeEvRAszplcvT__ELe4001a000000000000000E_c | |
template <class T> void g4(char (&buffer)[sizeof(T() + 5.0L)]) {} | |
void call_g4() { | |
char buffer[sizeof(long double)]; | |
g4<long double>(buffer); | |
} | |
// Literals in templates | |
#include <cstddef> | |
template <typename T, T I> T returnit() {return I;}; | |
enum colour { RED = -3, GREEN, BLUE}; | |
// use long type for enumeration | |
enum bigcolour { YELLOW = (1l << 32), CYAN, MAGENTA}; | |
void callreturnit() { | |
// CHECK-DAG: _Z8returnitIiLi4EET_v | |
auto a = returnit<int, 4>(); | |
// CHECK-DAG: _Z8returnitIjLj4EET_v | |
auto b = returnit<unsigned int, 4>(); | |
// CHECK-DAG: _Z8returnitIlLl4EET_v | |
auto c = returnit<long, 4>(); | |
// CHECK-DAG: _Z8returnitImLm4EET_v | |
auto d = returnit<unsigned long, 4>(); | |
// CHECK-DAG: _Z8returnitIxLxn456789EET_v | |
auto e = returnit<long long, -456789>(); | |
// CHECK-DAG: _Z8returnitIbLb1EET_v | |
auto f = returnit<bool, true>(); | |
// CHECK-DAG: _Z8returnitIbLb0EET_v | |
auto g = returnit<bool, false>(); | |
// CHECK-DAG: _Z8returnitIDnLDn0EET_v | |
auto n = returnit<std::nullptr_t, nullptr>(); | |
// CHECK-DAG: _Z8returnitI6colourLS0_n2EET_v | |
auto cg = returnit<colour, GREEN>(); | |
// LP64-DAG: _Z8returnitI9bigcolourLS0_4294967296EET_v | |
// ILP32-DAG: _Z8returnitI9bigcolourLS0_n2147483648EET_v | |
auto cy = returnit<bigcolour, YELLOW>(); | |
} |