[Issue 4893] New: Function pointer assignments ignore constness
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Sep 18 17:13:38 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4893
Summary: Function pointer assignments ignore constness
Product: D
Version: unspecified
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: jmdavisProg at gmx.com
--- Comment #0 from Jonathan M Davis <jmdavisProg at gmx.com> 2010-09-18 17:13:04 PDT ---
Take this program:
struct S
{
public:
this(int[] function(const int[])func)
{
_func = func;
}
@property int[] function(const int[]) func()
{
return func;
}
private:
int[] function(const int[]) _func;
}
int[] add1(int[] num)
{
return num ~ 1;
}
void main()
{
auto s = S(&add1);
}
It shouldn't compile, but it does. add1() does not take a const int[] and
therefore could theoretically modify its arguments (though it doesn't here),
violating the type of the function pointer. Using in and immutable instead of
const has the same problem. They compile when they shouldn't.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list