From c55efe4fb2e2684b788ecd3d02fd80724d785cd7 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Mon, 22 Aug 2011 23:55:33 +0000 Subject: Make sure we don't inline functions marked with __attribute__((naked)). llvm-svn: 138310 --- clang/test/CodeGen/attr-naked.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'clang/test/CodeGen') diff --git a/clang/test/CodeGen/attr-naked.c b/clang/test/CodeGen/attr-naked.c index bccacc9916f..2387d288eca 100644 --- a/clang/test/CodeGen/attr-naked.c +++ b/clang/test/CodeGen/attr-naked.c @@ -1,9 +1,16 @@ -// RUN: %clang_cc1 -g -emit-llvm -o %t %s -// RUN: grep 'naked' %t +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.7.0 %s -emit-llvm -o - | FileCheck %s void t1() __attribute__((naked)); +// Basic functionality check +// (Note that naked needs to imply noinline to work properly.) +// CHECK: define void @t1() nounwind noinline naked { void t1() { } +// Make sure this doesn't explode in the verifier. +// (It doesn't really make sense, but it isn't invalid.) +// CHECK: define void @t2() nounwind noinline naked { +__attribute((naked, always_inline)) void t2() { +} -- cgit v1.2.3