mangle-subst-std.cpp revision 189d59cfc762d0f683b9253ddec2cf519ec85b65
1e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson// RUN: clang-cc -emit-llvm %s -o - -triple=x86_64-apple-darwin9 | FileCheck %s 2e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson 3e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlssonnamespace std { 4e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson struct A { A(); }; 5e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson 6e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson // CHECK: define void @_ZNSt1AC1Ev 7e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson // CHECK: define void @_ZNSt1AC2Ev 8e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson A::A() { } 9e7c8cb6b2728aa98258288d221b09bc66cc05543Anders Carlsson}; 108c0315563f05a9face7209221325019e272075fbAnders Carlsson 118c0315563f05a9face7209221325019e272075fbAnders Carlssonnamespace std { 12189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson template<typename T> struct allocator { }; 138c0315563f05a9face7209221325019e272075fbAnders Carlsson} 148c0315563f05a9face7209221325019e272075fbAnders Carlsson 158c0315563f05a9face7209221325019e272075fbAnders Carlsson// FIXME: typename is really not allowed here, but it's kept 168c0315563f05a9face7209221325019e272075fbAnders Carlsson// as a workaround for PR5061. 178c0315563f05a9face7209221325019e272075fbAnders Carlsson// CHECK: define void @_Z1fSaIcESaIiE 188c0315563f05a9face7209221325019e272075fbAnders Carlssonvoid f(typename std::allocator<char>, typename std::allocator<int>) { } 19189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson 20189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlssonnamespace std { 21189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson template<typename T> struct basic_string { }; 22189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson} 23189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson 24189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson// FIXME: typename is really not allowed here, but it's kept 25189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson// as a workaround for PR5061. 26189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlsson// CHECK: define void @_Z1fSbIcESbIiE 27189d59cfc762d0f683b9253ddec2cf519ec85b65Anders Carlssonvoid f(typename std::basic_string<char>, typename std::basic_string<int>) { } 28