diff options
| -rw-r--r-- | llvm/include/llvm-c/Core.h | 3 | ||||
| -rw-r--r-- | llvm/lib/VMCore/Core.cpp | 10 | 
2 files changed, 13 insertions, 0 deletions
| diff --git a/llvm/include/llvm-c/Core.h b/llvm/include/llvm-c/Core.h index fc33ab7f824..a4456dd13e4 100644 --- a/llvm/include/llvm-c/Core.h +++ b/llvm/include/llvm-c/Core.h @@ -565,6 +565,9 @@ LLVMValueRef LLVMConstArray(LLVMTypeRef ElementTy,                              LLVMValueRef *ConstantVals, unsigned Length);  LLVMValueRef LLVMConstStruct(LLVMValueRef *ConstantVals, unsigned Count,                               LLVMBool Packed); +LLVMValueRef LLVMConstNamedStruct(LLVMTypeRef StructTy, +                                  LLVMValueRef *ConstantVals, +                                  unsigned Count);  LLVMValueRef LLVMConstVector(LLVMValueRef *ScalarConstantVals, unsigned Size);  /* Constant expressions */ diff --git a/llvm/lib/VMCore/Core.cpp b/llvm/lib/VMCore/Core.cpp index b59f6c78c52..f5bec303a4e 100644 --- a/llvm/lib/VMCore/Core.cpp +++ b/llvm/lib/VMCore/Core.cpp @@ -595,6 +595,16 @@ LLVMValueRef LLVMConstStruct(LLVMValueRef *ConstantVals, unsigned Count,    return LLVMConstStructInContext(LLVMGetGlobalContext(), ConstantVals, Count,                                    Packed);  } + +LLVMValueRef LLVMConstNamedStruct(LLVMTypeRef StructTy, +                                  LLVMValueRef *ConstantVals, +                                  unsigned Count) { +  Constant **Elements = unwrap<Constant>(ConstantVals, Count); +  const StructType *Ty = cast<StructType>(unwrap(StructTy)); + +  return wrap(ConstantStruct::get(Ty, ArrayRef<Constant*>(Elements, Count))); +} +  LLVMValueRef LLVMConstVector(LLVMValueRef *ScalarConstantVals, unsigned Size) {    return wrap(ConstantVector::get(ArrayRef<Constant*>(                              unwrap<Constant>(ScalarConstantVals, Size), Size))); | 

