digitalmars.D.bugs - [Issue 10817] New: Linker error with postcondition contract in a release library
- d-bugmail puremagic.com (48/48) Aug 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10817
- d-bugmail puremagic.com (11/11) Aug 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10817
http://d.puremagic.com/issues/show_bug.cgi?id=10817
Summary: Linker error with postcondition contract in a release
library
Product: D
Version: D1 & D2
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: david.eckardt sociomantic.com
07:14:27 PDT ---
****
// Module in a library, compiled with -release
module a;
class A
{
int f ( )
out (x) {assert(x);}
body {return 1;}
}
****
// User code, compiled without -release
module b;
import a;
class B: A
{
override int f ( ) {return super.f();}
}
int main ( )
{
return (new B).f();
}
****
$ dmd -lib -release a.d
$ dmd b.d -La.a
b.o: In function `_D1b1B1fMFZi':
b.d:(.text._D1b1B1fMFZi+0x60): undefined reference to
`_D1a1A1fMFZi8__ensureMFKiZv'
Apparently B.f() references the postcondition of A.f(), which it overrides, but
that is omitted because A is compiled with -release.
This is very unfortunate as it can make it impossible to use a library that is
compiled with -release.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 13 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10817
David Eckardt <david.eckardt sociomantic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |contracts, industry,
| |link-failure
07:18:50 PDT ---
The industry in this case is sociomantic.com.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 13 2013








d-bugmail puremagic.com