diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java index c095b5a095f..b77475fdc09 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java @@ -121,7 +121,13 @@ public class CPPASTLiteralExpression extends ASTNode implements ICPPASTLiteralEx return fSuffix; } - public void setSuffix(char[] suffix) { + public void addSuffix(char[] suffix) { + setSuffix(suffix); + // Make sure fValue reflects the added suffix. + fValue = CharArrayUtils.concat(fValue, suffix); + } + + private void setSuffix(char[] suffix) { this.fSuffix = suffix; } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java index 30dea4837df..46ea9c12431 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java @@ -2005,7 +2005,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser { return literalExprWithRange; } IToken opName = consume(IToken.tIDENTIFIER); - ((CPPASTLiteralExpression) literalExprWithRange).setSuffix(opName.getCharImage()); + ((CPPASTLiteralExpression) literalExprWithRange).addSuffix(opName.getCharImage()); setRange(literalExprWithRange, offset, opName.getEndOffset()); } }