enough information so we can mangle them correctly in cases involving dependent parameter types. (This specifically impacts cases involving null pointers and cases involving parameters of reference type.) Fix the mangler to use this information instead of trying to scavenge it out of the parameter declaration. <rdar://problem/12296776>. llvm-svn: 164656
17 lines
451 B
C++
17 lines
451 B
C++
// RUN: %clang_cc1 -std=c++11 -emit-llvm -o - %s | FileCheck %s
|
|
|
|
template<int *ip> struct IP {};
|
|
|
|
// CHECK: define void @_Z5test12IPILPi0EE
|
|
void test1(IP<nullptr>) {}
|
|
|
|
struct X{ };
|
|
template<int X::*pm> struct PM {};
|
|
|
|
// CHECK: define void @_Z5test22PMILM1Xi0EE
|
|
void test2(PM<nullptr>) { }
|
|
|
|
// CHECK: define void @_Z5test316DependentTypePtrIPiLS0_0EE
|
|
template<typename T, T x> struct DependentTypePtr {};
|
|
void test3(DependentTypePtr<int*,nullptr>) { }
|