Thread overview
[Issue 5796] New: ICE with pragma(msg, ...) after missing ';' in a template
Mar 30, 2011
kennytm@gmail.com
Jan 31, 2012
Walter Bright
March 30, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=5796

           Summary: ICE with pragma(msg, ...) after missing ';' in a
                    template
           Product: D
           Version: D2
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: kennytm@gmail.com


--- Comment #0 from kennytm@gmail.com 2011-03-30 08:37:48 PDT ---
When a 'pragma(msg, ...)' pragma has a missing comma, the subsequent
pragma(msg, ...) will result in a segfault.

------
template A(B) {
    pragma(msg, B)    // <-- missing ';'
    enum A = 0;
}
enum a = A!int;

pragma(msg, 0);
------

The error exists at least since 2.042 http://ideone.com/MVgnG, and still persists in 2.052. The segfault is raised in 'ExpInitializer::semantic' in 'init.c':


Initializer *ExpInitializer::semantic(Scope *sc, Type *t)
{
    //printf("....
    exp = exp->semantic(sc);
    exp = resolveProperties(sc, exp);
    exp = exp->optimize(WANTvalue | WANTinterpret);
    Type *tb = t->toBasetype();                        // <-- this line

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 31, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=5796



--- Comment #1 from github-bugzilla@puremagic.com 2012-01-30 23:22:18 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/ac69d4b9893725d0eb7f40002f73d0b280214b02 Merge pull request #665 from donc/ice5796

ICE bugs 5796 and 6720

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 31, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=5796



--- Comment #2 from github-bugzilla@puremagic.com 2012-01-31 01:08:59 PST ---
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/06b3b85c8f4e069d8a9a6224d155047ba83413c9 fix Issue 5796 - ICE with pragma(msg, ...) after missing ';' in a template

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 31, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=5796


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla@digitalmars.com
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------