1202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -O2 -o - | FileCheck %s 2202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlssonstatic int count = 0; 36b48720ae0ae977ca052472562fadb498a6dcb6fFariborz Jahanian 40880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanianstruct S { 5202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson S() { count++; } 6202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson ~S() { count--; } 70880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian}; 80880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian 9202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlssonstruct P { 10202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson P() { count++; } 11202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson ~P() { count--; } 120880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian}; 130880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian 14202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlssonstruct Q { 15202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson Q() { count++; } 16202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson ~Q() { count--; } 170880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian}; 180880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian 19202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlssonstruct M : Q, P { 200880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian S s; 210880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian Q q; 22202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson P p; 23202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson P p_arr[3]; 24202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson Q q_arr[2][3]; 250880bacf8fdb7de9d9c5b53b81ea0e53afccafb5Fariborz Jahanian}; 26202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson 27be9e8bfef6ee7f81ea30e9d358101b4f8d560c6bBill Wendling// CHECK: define i32 @_Z1fv() [[NUW:#[0-9]+]] 28202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlssonint f() { 29202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson { 30202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson count = 1; 31202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson M a; 32202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson } 33202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson 34202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson // CHECK: ret i32 1 35202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson return count; 36202e42b9bf622cd474191cbcdece658d5ef3fd8fAnders Carlsson} 37f7a9da053f5bd6c18450c1796d953b42c3b7ad3aBill Wendling 38be9e8bfef6ee7f81ea30e9d358101b4f8d560c6bBill Wendling// CHECK: attributes [[NUW]] = { nounwind{{.*}} } 39