diff options
author | Marco Syfrig | 2017-11-07 03:14:21 +0000 |
---|---|---|
committer | Marco Syfrig | 2017-11-07 03:22:50 +0000 |
commit | 9a9e80e115dc943e9964b238d9b9697682d47e6a (patch) | |
tree | 8ba3329526f07552c80147c83de1e92618d044d8 /core/org.eclipse.cdt.core | |
parent | 69404fdf895d4f8cb0c024cdc9207004d05c95c4 (diff) | |
download | org.eclipse.cdt-9a9e80e115dc943e9964b238d9b9697682d47e6a.tar.gz org.eclipse.cdt-9a9e80e115dc943e9964b238d9b9697682d47e6a.tar.xz org.eclipse.cdt-9a9e80e115dc943e9964b238d9b9697682d47e6a.zip |
Bug 526724: corrected deduced type for string literals with u8 prefix
Change-Id: Ibc55f6cbd8f425149598b397a4d2fb90b7ed6b8b
Signed-off-by: Marco Syfrig <marco.syfrig@gmail.com>
Diffstat (limited to 'core/org.eclipse.cdt.core')
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTLiteralExpression.java | 26 |
1 files changed, 17 insertions, 9 deletions
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 a59e9c25659..e63804a94c8 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 @@ -242,6 +242,10 @@ public class CPPASTLiteralExpression extends ASTNode implements ICPPASTLiteralEx // Skip past a prefix affecting the character type. if (fValue[0] == 'L' || fValue[0] == 'u' || fValue[0] == 'U') { + if(fValue[1] == '8') { + ++start; + } + ++start; } @@ -347,15 +351,19 @@ public class CPPASTLiteralExpression extends ASTNode implements ICPPASTLiteralEx public Kind getBasicCharKind() { switch (fValue[0]) { - case 'L': - return Kind.eWChar; - case 'u': - return Kind.eChar16; - case 'U': - return Kind.eChar32; - default: - return Kind.eChar; - } + case 'L': + return Kind.eWChar; + case 'U': + return Kind.eChar32; + case 'u': + // Bug 526724 u8 should result in Kind.eChar + if (fValue[1] != '8') { + return Kind.eChar16; + } + //$FALL-THROUGH$ + default: + return Kind.eChar; + } } private IType classifyTypeOfFloatLiteral() { |