Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 324853 - [C++ semantics] Wrong computation of type for conditional expressions
Summary: [C++ semantics] Wrong computation of type for conditional expressions
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-parser (show other bugs)
Version: 8.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 8.0   Edit
Assignee: Markus Schorn CLA
QA Contact: Mike Kucera CLA
URL:
Whiteboard:
Keywords:
: 329597 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-09-09 10:10 EDT by Markus Schorn CLA
Modified: 2010-11-11 03:23 EST (History)
1 user (show)

See Also:


Attachments
testcase + fix (58.26 KB, patch)
2010-09-13 10:28 EDT, Markus Schorn CLA
mschorn.eclipse: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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. ***