]> granicus.if.org Git - clang/commitdiff
Give CXXBoolLiteralExpr a type (all expressions need a valid type).
authorSteve Naroff <snaroff@apple.com>
Sat, 25 Aug 2007 14:02:58 +0000 (14:02 +0000)
committerSteve Naroff <snaroff@apple.com>
Sat, 25 Aug 2007 14:02:58 +0000 (14:02 +0000)
This fixes the following:

******************** TEST 'Parser/cxx-bool.cpp' FAILED! ********************
Command:
clang -fsyntax-only Parser/cxx-bool.cpp
Output:
SemaExpr.cpp:731: failed assertion `!t.isNull() && "DefaultFunctionArrayConversion - missing type"'
Output/cxx-bool.cpp.out.script: line 1: 22697 Abort trap              clang -fsyntax-only Parser/cxx-bool.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41401 91177308-0d34-0410-b5e6-96231b3b80d8

Sema/SemaExprCXX.cpp
include/clang/AST/ExprCXX.h

index 74be79aaddf0ba98bf4e5345472ce79ab96cffc2..be1d551cd67fc729dbc620775bfabe91d4b688c0 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "Sema.h"
 #include "clang/AST/ExprCXX.h"
+#include "clang/AST/ASTContext.h"
 using namespace clang;
 
 /// ParseCXXCasts - Parse {dynamic,static,reinterpret,const}_cast's.
@@ -40,5 +41,5 @@ Action::ExprResult
 Sema::ParseCXXBoolLiteral(SourceLocation OpLoc, tok::TokenKind Kind) {
   assert((Kind != tok::kw_true || Kind != tok::kw_false) &&
          "Unknown C++ Boolean value!");
-  return new CXXBoolLiteralExpr(Kind == tok::kw_true, OpLoc);
+  return new CXXBoolLiteralExpr(Kind == tok::kw_true, Context.BoolTy, OpLoc);
 }
index c863df4c76088e82cb7f763732e5a2569ff7cc8b..14b1cc7d3aff1ce68b366003689d35641f46fcf3 100644 (file)
@@ -78,8 +78,8 @@ namespace clang {
     bool Value;
     SourceLocation Loc;
   public:
-    CXXBoolLiteralExpr(bool val, SourceLocation l) : 
-      Expr(CXXBoolLiteralExprClass, QualType()), Value(val), Loc(l) {}
+    CXXBoolLiteralExpr(bool val, QualType Ty, SourceLocation l) : 
+      Expr(CXXBoolLiteralExprClass, Ty), Value(val), Loc(l) {}
     
     bool getValue() const { return Value; }