mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-30 12:25:35 +02:00
Fixes some conversions, bug 262191.
This commit is contained in:
parent
21bdc56dc0
commit
ea73ee769b
3 changed files with 20 additions and 2 deletions
|
@ -6559,4 +6559,22 @@ public class AST2CPPTests extends AST2BaseTest {
|
||||||
assertTrue(bar_c_ft.isConst()); assertTrue(!bar_c_ft.isVolatile());
|
assertTrue(bar_c_ft.isConst()); assertTrue(!bar_c_ft.isVolatile());
|
||||||
assertTrue(!bar_ft.isConst()); assertTrue(!bar_ft.isVolatile());
|
assertTrue(!bar_ft.isConst()); assertTrue(!bar_ft.isVolatile());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// void test1(float f);
|
||||||
|
// void test1(void);
|
||||||
|
// void blabla() {
|
||||||
|
// test1(1);
|
||||||
|
// }
|
||||||
|
// enum E {e1};
|
||||||
|
// class C {};
|
||||||
|
// void test2(float f);
|
||||||
|
// void test2(C c);
|
||||||
|
// void blabla2() {
|
||||||
|
// test2(e1);
|
||||||
|
// }
|
||||||
|
public void testOverloadResolution_262191() throws Exception {
|
||||||
|
final String code= getAboveComment();
|
||||||
|
parseAndCheckBindings(code);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1899,7 +1899,7 @@ public class CPPSemantics {
|
||||||
|
|
||||||
final IParameter[] params = function.getParameters();
|
final IParameter[] params = function.getParameters();
|
||||||
int numPars = params.length;
|
int numPars = params.length;
|
||||||
if (numArgs == 0 && numPars == 1) {
|
if (numArgs < 2 && numPars == 1) {
|
||||||
// check for void
|
// check for void
|
||||||
IType t = SemanticUtil.getUltimateTypeViaTypedefs(params[0].getType());
|
IType t = SemanticUtil.getUltimateTypeViaTypedefs(params[0].getType());
|
||||||
if (t instanceof IBasicType && ((IBasicType)t).getType() == IBasicType.t_void)
|
if (t instanceof IBasicType && ((IBasicType)t).getType() == IBasicType.t_void)
|
||||||
|
|
|
@ -778,7 +778,7 @@ public class Conversions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t instanceof IBasicType && s instanceof IBasicType || s instanceof IEnumeration) {
|
if (t instanceof IBasicType && (s instanceof IBasicType || s instanceof IEnumeration)) {
|
||||||
// 4.7 An rvalue of an integer type can be converted to an rvalue of another integer type.
|
// 4.7 An rvalue of an integer type can be converted to an rvalue of another integer type.
|
||||||
// An rvalue of an enumeration type can be converted to an rvalue of an integer type.
|
// An rvalue of an enumeration type can be converted to an rvalue of an integer type.
|
||||||
cost.rank = Cost.CONVERSION_RANK;
|
cost.rank = Cost.CONVERSION_RANK;
|
||||||
|
|
Loading…
Add table
Reference in a new issue