From 3e7ced125bc579a72294e6fdc55cc6724e36ae7b Mon Sep 17 00:00:00 2001 From: Steve Naroff Date: Mon, 3 Nov 2008 11:20:24 +0000 Subject: Fix clang block rewriter: Assertion failed: Offset+NumBytes <= size() && "Invalid region to erase!", file c:\cygwin\home\Administrator\llvm\to ols\clang\include\clang/Rewrite/RewriteRope.h, line 219. llvm-svn: 58607 --- clang/Driver/RewriteObjC.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'clang/Driver/RewriteObjC.cpp') diff --git a/clang/Driver/RewriteObjC.cpp b/clang/Driver/RewriteObjC.cpp index 39f4f15ae9b..ee9e2bc2492 100644 --- a/clang/Driver/RewriteObjC.cpp +++ b/clang/Driver/RewriteObjC.cpp @@ -3570,6 +3570,9 @@ void RewriteObjC::RewriteCastExpr(CastExpr *CE) { // Need to avoid trying to rewrite synthesized casts. if (LocStart.isInvalid()) return; + // Need to avoid trying to rewrite casts contained in macros. + if (!Rewriter::isRewritable(LocStart) || !Rewriter::isRewritable(LocEnd)) + return; const char *startBuf = SM->getCharacterData(LocStart); const char *endBuf = SM->getCharacterData(LocEnd); -- cgit v1.2.3