16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN: %clang_cc1 -emit-llvm -o %t %s 2a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner// PR2743 3a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner// <rdr://6094512> 4a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner 5a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner/* CodeGen should handle this even if it makes it past 6a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner sema. Unfortunately this test will become useless once sema starts 7a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner rejecting this. */ 8a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattner 9a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattnerstatic void e0(); 10a14db75641f377ef8b033c67653cd95ac4c36fe3Chris Lattnervoid f0() { e0(); } 1183ea530f9da1b8ca57773bf53418ce9fc98f46acRichard Smith 1283ea530f9da1b8ca57773bf53418ce9fc98f46acRichard Smithinline void e1(); 1383ea530f9da1b8ca57773bf53418ce9fc98f46acRichard Smithvoid f1() { e1(); } 1483ea530f9da1b8ca57773bf53418ce9fc98f46acRichard Smith 1583ea530f9da1b8ca57773bf53418ce9fc98f46acRichard Smithvoid e2() __attribute__((weak)); 1683ea530f9da1b8ca57773bf53418ce9fc98f46acRichard Smithvoid f2() { e2(); } 176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines