Mercurial > hg > CbC > CbC_llvm
comparison clang/test/CodeGenCXX/mangle-alias-template.cpp @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_cc1 -std=c++11 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s | |
2 | |
3 template<typename T> struct alloc {}; | |
4 template<typename T> using Alloc = alloc<T>; | |
5 template<typename T, typename A = Alloc<T>> struct vector {}; | |
6 | |
7 template<typename T> using Vec = vector<T>; | |
8 | |
9 template<typename T> void f(Vec<T> v); | |
10 template<typename T> void g(T); | |
11 | |
12 template<template<typename> class F> void h(F<int>); | |
13 | |
14 // CHECK-LABEL: define void @_Z1zv( | |
15 void z() { | |
16 vector<int> VI; | |
17 f(VI); | |
18 // CHECK: call void @_Z1fIiEv6vectorIT_5allocIS1_EE( | |
19 | |
20 Vec<double> VD; | |
21 g(VD); | |
22 // CHECK: call void @_Z1gI6vectorId5allocIdEEEvT_( | |
23 | |
24 h<Vec>(VI); | |
25 // CHECK: call void @_Z1hI3VecEvT_IiE( | |
26 | |
27 Alloc<int> AC; | |
28 h(AC); | |
29 // CHECK: call void @_Z1hI5allocEvT_IiE( | |
30 | |
31 h<Alloc>(AC); | |
32 // CHECK: call void @_Z1hI5AllocEvT_IiE( | |
33 | |
34 Vec<char> VC; | |
35 g<Vec<char>>(VC); | |
36 // CHECK: call void @_Z1gI6vectorIc5allocIcEEEvT_( | |
37 | |
38 Vec<Vec<int>> VVI; | |
39 g(VVI); | |
40 // CHECK: call void @_Z1gI6vectorIS0_Ii5allocIiEES1_IS3_EEEvT_( | |
41 } |