From 571b21b2f546475d205a22a0f1b877510dba1ec6 Mon Sep 17 00:00:00 2001 From: Hannes Vogt Date: Mon, 29 Apr 2019 21:56:49 +0200 Subject: [PATCH] Bug 545756 - Fix aggregate init from string literal Fix nested type for typedefs Change-Id: Ie8ff31c9db9f3112487760640885066ea8cb0fd3 Signed-off-by: Hannes Vogt --- .../org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java | 3 ++- .../core/dom/parser/cpp/semantics/AggregateInitialization.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java index 44a914de25c..58f292de819 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java @@ -13044,8 +13044,9 @@ public class AST2CPPTests extends AST2CPPTestBase { bh.assertImplicitName("b{v};", 1, IProblemBinding.class); } + // using my_char = char; // struct type { - // char data[2]; + // my_char data[2]; // }; // // type foo{"s"}; diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AggregateInitialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AggregateInitialization.java index fb1190eb5d0..9397d19ee41 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AggregateInitialization.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/AggregateInitialization.java @@ -215,7 +215,8 @@ class AggregateInitialization { */ private static ICPPBasicType getBasicTypeFromArray(IType type) { if (type instanceof IArrayType) { - IType nested = SemanticUtil.getNestedType(((IArrayType) type).getType(), SemanticUtil.ALLCVQ); + IType nested = SemanticUtil.getNestedType(((IArrayType) type).getType(), + SemanticUtil.ALLCVQ | SemanticUtil.TDEF); if (nested instanceof ICPPBasicType) { return (ICPPBasicType) nested; }