[Issue 14587] New: DMD 2.067.1 generating crashing binary on OSX
    via Digitalmars-d-bugs 
    digitalmars-d-bugs at puremagic.com
       
    Fri May 15 06:08:02 PDT 2015
    
    
  
https://issues.dlang.org/show_bug.cgi?id=14587
          Issue ID: 14587
           Summary: DMD 2.067.1 generating crashing binary on OSX
           Product: D
           Version: unspecified
          Hardware: x86_64
                OS: Mac OS X
            Status: NEW
          Severity: normal
          Priority: P1
         Component: DMD
          Assignee: nobody at puremagic.com
          Reporter: robpieke at mail.com
(reporting as an issue - suggested by John Colvin)
I'm consistently getting "Segmentation fault: 11" (dmd 2.067.1, OSX) on the
code below.
I can't figure out where things are going wrong, because any attempt I make to
debug via extra print statements causes the program to run successfully. Same
if I try to compile with "-gc" ... it suddenly starts working, so I can't debug
with gdb. And the code similarly seems to work fine with ldc2.
Many thanks in advance!
* * *
import std.stdio;
enum Suit {
    HEARTS, DIAMONDS, CLUBS, SPADES
}
enum Value {
    ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, 
JACK, QUEEN, KING
}
struct Card {
    Value value;
    Suit suit;
}
void printCard(in Card card) {
    final switch(card.value) {
        case Value.ACE:
            write("A");
            break;
        case Value.TWO, Value.THREE, Value.FOUR, Value.FIVE, Value.SIX, 
Value.SEVEN, Value.EIGHT, Value.NINE, Value.TEN:
            writef("%d", card.value);
            break;
        case Value.JACK:
            write("J");
            break;
        case Value.QUEEN:
            write("Q");
            break;
        case Value.KING:
            write("K");
            break;
    }
    final switch(card.suit) {
        case Suit.HEARTS:
            write("♡");
            break;
        case Suit.DIAMONDS:
            write("♢");
            break;
        case Suit.CLUBS:
            write("♣");
            break;
        case Suit.SPADES:
            write("♠");
            break;
    }
    write("\n");
}
int main() {
    auto card = Card(Value.JACK, Suit.CLUBS);
    printCard(card);
    return 0;
}
--
    
    
More information about the Digitalmars-d-bugs
mailing list