mangle-subst-std.cpp revision 92ac9ffecd236a6be0d6ab30cef56100e56b171c
1// RUN: %clang_cc1 -emit-llvm %s -o - -triple=x86_64-apple-darwin9 | FileCheck %s 2 3// CHECK: @_ZNSt1AC1Ev = alias {{.*}} @_ZNSt1AC2Ev 4 5namespace std { 6 struct A { A(); }; 7 8 // CHECK: define void @_ZNSt1AC2Ev 9 A::A() { } 10}; 11 12namespace std { 13 template<typename> struct allocator { }; 14} 15 16// CHECK: define void @_Z1fSaIcESaIiE 17void f(std::allocator<char>, std::allocator<int>) { } 18 19namespace std { 20 template<typename, typename, typename> struct basic_string { }; 21} 22 23// CHECK: define void @_Z1fSbIcciE 24void f(std::basic_string<char, char, int>) { } 25 26namespace std { 27 template<typename> struct char_traits { }; 28 29 typedef std::basic_string<char, std::char_traits<char>, std::allocator<char> > string; 30} 31 32// CHECK: _Z1fSs 33void f(std::string) { } 34 35namespace std { 36 template<typename, typename> struct basic_istream { }; 37 template<typename, typename> struct basic_ostream { }; 38 template<typename, typename> struct basic_iostream { }; 39} 40 41// CHECK: _Z1fSi 42void f(std::basic_istream<char, std::char_traits<char> >) { } 43 44// CHECK: _Z1fSo 45void f(std::basic_ostream<char, std::char_traits<char> >) { } 46 47// CHECK: _Z1fSd 48void f(std::basic_iostream<char, std::char_traits<char> >) { } 49 50extern "C++" { 51namespace std 52{ 53 typedef void (*terminate_handler) (); 54 55 // CHECK: _ZSt13set_terminatePFvvE 56 terminate_handler set_terminate(terminate_handler) { return 0; } 57} 58} 59