Author: rnk Date: Wed Nov 13 16:58:53 2013 New Revision: 194617 URL: http://llvm.org/viewvc/llvm-project?rev=194617&view=rev Log: -fms-extensions: Recognize _alloca as an alias for the alloca builtin
Differential Revision: http://llvm-reviews.chandlerc.com/D1989 Added: cfe/trunk/test/CodeGen/builtins-ms.c Modified: cfe/trunk/include/clang/Basic/Builtins.def cfe/trunk/lib/CodeGen/CGBuiltin.cpp Modified: cfe/trunk/include/clang/Basic/Builtins.def URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Builtins.def?rev=194617&r1=194616&r2=194617&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/Builtins.def (original) +++ cfe/trunk/include/clang/Basic/Builtins.def Wed Nov 13 16:58:53 2013 @@ -675,6 +675,7 @@ BUILTIN(__builtin_index, "c*cC*i", "Fn") BUILTIN(__builtin_rindex, "c*cC*i", "Fn") // Microsoft builtins. These are only active with -fms-extensions. +LANGBUILTIN(_alloca, "v*z", "n", ALL_MS_LANGUAGES) LANGBUILTIN(__assume, "vb", "n", ALL_MS_LANGUAGES) LANGBUILTIN(__noop, "v.", "n", ALL_MS_LANGUAGES) LANGBUILTIN(__debugbreak, "v", "n", ALL_MS_LANGUAGES) Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=194617&r1=194616&r2=194617&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original) +++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Wed Nov 13 16:58:53 2013 @@ -604,6 +604,7 @@ RValue CodeGenFunction::EmitBuiltinExpr( } case Builtin::BIalloca: + case Builtin::BI_alloca: case Builtin::BI__builtin_alloca: { Value *Size = EmitScalarExpr(E->getArg(0)); return RValue::get(Builder.CreateAlloca(Builder.getInt8Ty(), Size)); Added: cfe/trunk/test/CodeGen/builtins-ms.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/builtins-ms.c?rev=194617&view=auto ============================================================================== --- cfe/trunk/test/CodeGen/builtins-ms.c (added) +++ cfe/trunk/test/CodeGen/builtins-ms.c Wed Nov 13 16:58:53 2013 @@ -0,0 +1,9 @@ +// RUN: %clang_cc1 %s -emit-llvm -o - -fms-extensions -triple i686-pc-win32 | FileCheck %s + +// CHECK-LABEL: define void @test_alloca +void capture(void *); +void test_alloca(int n) { + capture(_alloca(n)); + // CHECK: %[[arg:.*]] = alloca i8, i32 % + // CHECK: call void @capture(i8* %[[arg]]) +} _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
