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 67f95d07b7b..6d977a3200b 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 @@ -12269,4 +12269,18 @@ public class AST2CPPTests extends AST2TestBase { public void testEnumeratorAttribute_514821() throws Exception { parseAndCheckBindings(getAboveComment(), CPP, true /* use GNU extensions */); } + + // struct CType { + // char m_Array[4]; + // }; + // + // void foo(char(&)[4]); + // + // int main() { + // char name[sizeof(CType().m_Array)]; + // foo(name); + // } + public void testSizeofArrayField_512932() throws Exception { + parseAndCheckBindings(); + } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalMemberAccess.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalMemberAccess.java index 44de9979fc1..646c27557a3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalMemberAccess.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/EvalMemberAccess.java @@ -15,7 +15,6 @@ import static org.eclipse.cdt.core.dom.ast.IASTExpression.ValueCategory.LVALUE; import static org.eclipse.cdt.core.dom.ast.IASTExpression.ValueCategory.PRVALUE; import static org.eclipse.cdt.core.dom.ast.IASTExpression.ValueCategory.XVALUE; import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExpressionTypes.glvalueType; -import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExpressionTypes.prvalueType; import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExpressionTypes.prvalueTypeWithResolvedTypedefs; import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.ExpressionTypes.typeFromFunctionCall; import static org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.SemanticUtil.ALLCVQ; @@ -265,11 +264,6 @@ public class EvalMemberAccess extends CPPDependentEvaluation { e2 = glvalueType(e2); } else if (fMember instanceof ICPPField && !((ICPPField) fMember).isStatic()) { e2 = addQualifiersForAccess((ICPPField) fMember, e2, fOwnerType); - if (!fIsPointerDeref && fOwnerValueCategory == PRVALUE) { - e2 = prvalueType(e2); - } else { - e2 = glvalueType(e2); - } } return SemanticUtil.mapToAST(e2, point); }