[cfe-commits] r46482 - in /cfe/trunk: CodeGen/CGExprConstant.cpp test/CodeGen/globalinit.c
Anders Carlsson
andersca at mac.com
Mon Jan 28 17:33:32 PST 2008
Author: andersca
Date: Mon Jan 28 19:33:32 2008
New Revision: 46482
URL: http://llvm.org/viewvc/llvm-project?rev=46482&view=rev
Log:
Handle binary or in constant expressions.
Modified:
cfe/trunk/CodeGen/CGExprConstant.cpp
cfe/trunk/test/CodeGen/globalinit.c
Modified: cfe/trunk/CodeGen/CGExprConstant.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/CodeGen/CGExprConstant.cpp?rev=46482&r1=46481&r2=46482&view=diff
==============================================================================
--- cfe/trunk/CodeGen/CGExprConstant.cpp (original)
+++ cfe/trunk/CodeGen/CGExprConstant.cpp Mon Jan 28 19:33:32 2008
@@ -236,6 +236,14 @@
return EmitLValue(E->getSubExpr());
}
+ // Binary operators
+ llvm::Constant *VisitBinOr(const BinaryOperator *E) {
+ llvm::Constant *LHS = Visit(E->getLHS());
+ llvm::Constant *RHS = Visit(E->getRHS());
+
+ return llvm::ConstantExpr::getOr(LHS, RHS);
+ }
+
// Utility methods
const llvm::Type *ConvertType(QualType T) {
return CGM.getTypes().ConvertType(T);
Modified: cfe/trunk/test/CodeGen/globalinit.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/globalinit.c?rev=46482&r1=46481&r2=46482&view=diff
==============================================================================
--- cfe/trunk/test/CodeGen/globalinit.c (original)
+++ cfe/trunk/test/CodeGen/globalinit.c Mon Jan 28 19:33:32 2008
@@ -36,8 +36,12 @@
static int a = { 1 };
static int b = { 1, 2 };
+// References to enums.
enum {
EnumA, EnumB
};
int c[] = { EnumA, EnumB };
+
+// Binary operators
+int d[] = { EnumA | EnumB };
More information about the cfe-commits
mailing list