Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 324853

Summary: [C++ semantics] Wrong computation of type for conditional expressions
Product: [Tools] CDT Reporter: Markus Schorn <mschorn.eclipse>
Component: cdt-parserAssignee: Markus Schorn <mschorn.eclipse>
Status: RESOLVED FIXED QA Contact: Mike Kucera <mikekucera>
Severity: normal    
Priority: P3 CC: electoys
Version: 8.0   
Target Milestone: 8.0   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
testcase + fix mschorn.eclipse: iplog-

Description Markus Schorn CLA 2010-09-09 10:10:30 EDT
Here is an example where that matters:

struct C {
  operator int();
};
void f(C);
void f(int);
void test() {
  C c;
  f(true ? c : 1); // calls f(int), not f(C);
}
Comment 1 Markus Schorn CLA 2010-09-13 10:28:43 EDT
Created attachment 178744 [details]
testcase + fix
Comment 2 Markus Schorn CLA 2010-09-13 10:46:12 EDT
Fixed in 8.0 > 20100913.
Comment 3 CDT Genie CLA 2010-09-13 11:23:03 EDT
*** cdt cvs genie on behalf of mschorn ***
Bug 324853: Expression type for conditional expression.

[*] Cost.java 1.16 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Cost.java?root=Tools_Project&r1=1.15&r2=1.16
[*] Conversions.java 1.64 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/Conversions.java?root=Tools_Project&r1=1.63&r2=1.64
[*] BuiltinOperators.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BuiltinOperators.java?root=Tools_Project&r1=1.3&r2=1.4
[*] CPPSemantics.java 1.179 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java?root=Tools_Project&r1=1.178&r2=1.179
[*] SemanticUtil.java 1.46 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/SemanticUtil.java?root=Tools_Project&r1=1.45&r2=1.46

[*] OverloadableOperator.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/OverloadableOperator.java?root=Tools_Project&r1=1.6&r2=1.7
[*] CPPASTConditionalExpression.java 1.21 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTConditionalExpression.java?root=Tools_Project&r1=1.20&r2=1.21
[*] GNUCPPSourceParser.java 1.241 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java?root=Tools_Project&r1=1.240&r2=1.241

[*] AST2CPPTests.java 1.365 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java?root=Tools_Project&r1=1.364&r2=1.365
Comment 4 Markus Schorn CLA 2010-11-11 03:23:43 EST
*** Bug 329597 has been marked as a duplicate of this bug. ***