Opened 8 years ago
Closed 5 years ago
#70 closed defect (invalid)
resolver problesm
| Reported by: | pabuhr | Owned by: | Rob |
|---|---|---|---|
| Priority: | minor | Component: | cfa-cc |
| Version: | 1.0 | Keywords: | |
| Cc: |
Description
Selects wrong routine to call.
forall( dtype T | sized(T) ) T * foo( void ) {
printf( "foo1\n" );
return (T *)0;
}
forall( dtype T | sized(T) ) T & foo( void ) {
printf( "foo2\n" );
return (T &)*(T *)0;
}
int main( void ) {
int * i = foo(); // correctly calls foo1
int & j = foo(); // correctly calls foo2
i = foo(); // correctly calls foo1
&j = foo(); // incorrectly calls foo1 instead of foo2
}
@plg2[1]% a.out foo1 foo2 foo1 foo1
Change History (2)
comment:1 by , 7 years ago
comment:2 by , 5 years ago
| Resolution: | → invalid |
|---|---|
| Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.
Line
int * i = foo(); // correctly calls foo1is now ambiguous