summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-08-21 02:53:44 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-08-21 02:53:44 +0000
commit93b00a98a324b7b6debe03f71b741d094fe05d64 (patch)
treeedbb19b25368aab6991c6c96a9b36d8b50fa03aa
parent573869fe5bfc2b9bff454c97bc9bb097f138306f (diff)
downloadbcm5719-llvm-93b00a98a324b7b6debe03f71b741d094fe05d64.tar.gz
bcm5719-llvm-93b00a98a324b7b6debe03f71b741d094fe05d64.zip
IRgen: Add an LValue::MakeAddr variant which takes a type and uses that to build
the qualifiers. Also, add CodeGenFunction::MakeAddrLValue() helper function which passes in the ASTContext. llvm-svn: 111714
-rw-r--r--clang/lib/CodeGen/CGValue.h8
-rw-r--r--clang/lib/CodeGen/CodeGenFunction.h4
2 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGValue.h b/clang/lib/CodeGen/CGValue.h
index a1bd193f9e2..8153169c875 100644
--- a/clang/lib/CodeGen/CGValue.h
+++ b/clang/lib/CodeGen/CGValue.h
@@ -15,6 +15,7 @@
#ifndef CLANG_CODEGEN_CGVALUE_H
#define CLANG_CODEGEN_CGVALUE_H
+#include "clang/AST/ASTContext.h"
#include "clang/AST/Type.h"
namespace llvm {
@@ -258,6 +259,13 @@ public:
return R;
}
+ static LValue MakeAddr(llvm::Value *V, QualType T, ASTContext &Context) {
+ Qualifiers Quals = Context.getCanonicalType(T).getQualifiers();
+ Quals.setObjCGCAttr(Context.getObjCGCAttrKind(T));
+
+ return MakeAddr(V, Quals);
+ }
+
static LValue MakeVectorElt(llvm::Value *Vec, llvm::Value *Idx,
unsigned CVR) {
LValue R;
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h
index 6dcf18c3cdf..726b7ed284e 100644
--- a/clang/lib/CodeGen/CodeGenFunction.h
+++ b/clang/lib/CodeGen/CodeGenFunction.h
@@ -975,6 +975,10 @@ public:
return Quals;
}
+ LValue MakeAddrLValue(llvm::Value *V, QualType T) {
+ return LValue::MakeAddr(V, T, getContext());
+ }
+
/// CreateTempAlloca - This creates a alloca and inserts it into the entry
/// block. The caller is responsible for setting an appropriate alignment on
/// the alloca.
OpenPOWER on IntegriCloud