mangle-subst.cpp revision d99edc44300b36732a14c294c93899ba28d479ea
17ed5ea9146cc0c61ab8ce94feff1153c2e8cd6dbAnders Carlsson// RUN: clang-cc -emit-llvm %s -o - -triple=x86_64-apple-darwin9 | FileCheck %s 27696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 37696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssonstruct X {}; 47696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 56862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson// CHECK: define void @_Z1f1XS_( 67696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssonvoid f(X, X) { } 77696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 86862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson// CHECK: define void @_Z1fR1XS0_( 97696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssonvoid f(X&, X&) { } 107696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 116862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson// CHECK: define void @_Z1fRK1XS1_( 127696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssonvoid f(const X&, const X&) { } 137696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 147696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssontypedef void T(); 157696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssonstruct S {}; 167696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 176862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson// CHECK: define void @_Z1fPFvvEM1SFvvE( 187696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlssonvoid f(T*, T (S::*)) {} 197696737d41321cf20aef1aab1454872f2ff7a1c8Anders Carlsson 206862fc720b8e35ee4408822b2390020f263646b2Anders Carlssonnamespace A { 216862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson struct A { }; 226862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson struct B { }; 236862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson}; 246862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson 256862fc720b8e35ee4408822b2390020f263646b2Anders Carlsson// CHECK: define void @_Z1fN1A1AENS_1BE( 266862fc720b8e35ee4408822b2390020f263646b2Anders Carlssonvoid f(A::A a, A::B b) { } 27d99edc44300b36732a14c294c93899ba28d479eaAnders Carlsson 28d99edc44300b36732a14c294c93899ba28d479eaAnders Carlssonstruct C { 29d99edc44300b36732a14c294c93899ba28d479eaAnders Carlsson struct D { }; 30d99edc44300b36732a14c294c93899ba28d479eaAnders Carlsson}; 31d99edc44300b36732a14c294c93899ba28d479eaAnders Carlsson 32d99edc44300b36732a14c294c93899ba28d479eaAnders Carlsson// CHECK: define void @_Z1fN1C1DERS_PS_S1_( 33d99edc44300b36732a14c294c93899ba28d479eaAnders Carlssonvoid f(C::D, C&, C*, C&) { } 34