12873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 %s -emit-llvm -o - | FileCheck %s 2dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbar 3dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbarvoid t1() __attribute__((naked)); 4dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbar 52873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman// Basic functionality check 62873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman// (Note that naked needs to imply noinline to work properly.) 7c3af6799d4c8ec4b338236e4361c0795e9af890aBill Wendling// CHECK: define void @t1() [[NAKED:#[0-9]+]] { 8dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbarvoid t1() 9dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbar{ 10dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbar} 11dd0cb22bd62e1e835327f478a2dbf0b8fa439713Daniel Dunbar 122873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman// Make sure this doesn't explode in the verifier. 132873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman// (It doesn't really make sense, but it isn't invalid.) 14c3af6799d4c8ec4b338236e4361c0795e9af890aBill Wendling// CHECK: define void @t2() [[NAKED]] { 152873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman__attribute((naked, always_inline)) void t2() { 162873aee1774a2ae731d6cc5c5ee05ba82780dc98Eli Friedman} 17f7a9da053f5bd6c18450c1796d953b42c3b7ad3aBill Wendling 18c3af6799d4c8ec4b338236e4361c0795e9af890aBill Wendling// CHECK: attributes [[NAKED]] = { naked noinline nounwind{{.*}} } 19