diff --git a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterExpressionTestSource.awts b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterExpressionTestSource.awts index 594bebbea6c..345c4453981 100644 --- a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterExpressionTestSource.awts +++ b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterExpressionTestSource.awts @@ -159,6 +159,20 @@ void f() type_info c = typeid (a); +//!CPPUnaryExpression without operand Bug 318552 +//%CPP +void rethrow() +{ + try { + int i = 1; + throw i; + } + catch(int j){ + throw ; + } +} + + //!TypeIdExpression //%CPP int d = sizeof (int); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ExpressionWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ExpressionWriter.java index 3c9cce0eb1f..8dbf6b354d0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ExpressionWriter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/ExpressionWriter.java @@ -383,7 +383,7 @@ public class ExpressionWriter extends NodeWriter{ if(isPrefixExpression(unExp )) { scribe.print(getPrefixOperator(unExp)); } - unExp.getOperand().accept(visitor); + visitNodeIfNotNull(unExp.getOperand()); if(isPostfixExpression(unExp)) { scribe.print(getPostfixOperator(unExp)); }