View mode: basic / threaded / horizontal-split · Log in · Help
October 14, 2009
[Issue 3396] New: Call of abstract method not detected by semantic check
http://d.puremagic.com/issues/show_bug.cgi?id=3396

          Summary: Call of abstract method not detected by semantic check
          Product: D
          Version: 2.031
         Platform: x86
       OS/Version: Windows
           Status: NEW
         Keywords: diagnostic
         Severity: minor
         Priority: P3
        Component: DMD
       AssignedTo: nobody@puremagic.com
       ReportedBy: dfj1esp02@sneakemail.com


--- Comment #0 from Sobirari Muhomori <dfj1esp02@sneakemail.com> 2009-10-14 02:20:30 PDT ---
---
abstract class A
{
   abstract void M();
}

class B:A
{
   override void M(){ writeln("B.M"); super.M(); }
}

int main()
{
   auto b=new B();
   b.M();
   return 0;
}
---

>dmd -c tmp.d -w -o-

>dmd -w -run tmp.d
OPTLINK (R) for Win32  Release 8.00.1
Copyright (C) Digital Mars 1989-2004  All rights reserved.
tmp.obj(tmp)
Error 42: Symbol Undefined _D3tmp1A1MMFZv
--- errorlevel 1

Compilation with -o- passes successfully.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 06, 2012
[Issue 3396] Call of abstract method not detected by semantic check
http://d.puremagic.com/issues/show_bug.cgi?id=3396



--- Comment #1 from rjmcguire@gmail.com 2012-02-06 04:07:53 PST ---
Created an attachment (id=1072)
abstract methods not being flagged as unimplemented

I encountered this problem in a library, what I found interesting was that the
program compiled and ran without crashing, just had empty output where I was
expecting text.
Attachment is a simpler test case with similar outcome:

$ dmd test.d
test.o:(.rodata+0xb0): undefined reference to `_D4test1A2a1MFZAya'
collect2: ld returned 1 exit status
--- errorlevel 1

$ dmd -c test.d
$

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 10, 2012
[Issue 3396] Call of abstract method not detected by semantic check
http://d.puremagic.com/issues/show_bug.cgi?id=3396


Stewart Gordon <smjg@iname.com> changed:

          What    |Removed                     |Added
----------------------------------------------------------------------------
          Keywords|                            |accepts-invalid
                CC|                            |smjg@iname.com


--- Comment #2 from Stewart Gordon <smjg@iname.com> 2012-02-10 10:45:07 PST ---
(In reply to comment #1)
> Created an attachment (id=1072) [details]
> abstract methods not being flagged as unimplemented

AIUI a method declared without the abstract attribute is taken to reference a
function defined elsewhere.  Since no library or object file that defines such
a function has been linked in, the linker errors.

The original testcase is different: A.m is declared as abstract, so the
compiler should reject the attempt to call it there and then.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Top | Discussion index | About this forum | D home