Jump to page: 1 2
Thread overview
[Bug 224] [ICE] std/datetime.o: in reload_combine_note_use, at postreload.c:1535
May 16, 2016
Iain Buclaw
May 16, 2016
Iain Buclaw
May 17, 2016
Johannes Pfau
May 18, 2016
Iain Buclaw
May 18, 2016
Iain Buclaw
May 18, 2016
Johannes Pfau
May 18, 2016
Iain Buclaw
May 18, 2016
Iain Buclaw
May 19, 2016
Iain Buclaw
May 19, 2016
Iain Buclaw
May 19, 2016
Iain Buclaw
May 22, 2016
Iain Buclaw
May 16, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #1 from Iain Buclaw <ibuclaw@gdcproject.org> ---
This happens when compiling using -fPIC.

-- 
You are receiving this mail because:
You are watching all bug changes.
May 16, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

Iain Buclaw <ibuclaw@gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Hardware|All                         |x86
                 OS|All                         |Linux

-- 
You are receiving this mail because:
You are watching all bug changes.
May 17, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

Johannes Pfau <johannespfau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |johannespfau@gmail.com

--- Comment #2 from Johannes Pfau <johannespfau@gmail.com> ---
Strange, I think I've tested 32bit when I initially implemented the automake/libtool stuff. So this is probably a regression in the last 2-3 weeks?

-- 
You are receiving this mail because:
You are watching all bug changes.
May 18, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #3 from Iain Buclaw <ibuclaw@gdcproject.org> ---
This is the "reduced" test.
---
import core.time;
import core.sys.posix.sys.time;

struct Clock
{
    static currTime(immutable TimeZone = LocalTime())
    {
        return SysTime(currStdTime);
    }

    static currStdTime()
    {
        return convert!("seconds", "hnsecs")(0);
    }
}

struct SysTime
{
    import std.typecons;

    this(TimeZone) { }
    this(DateTime) { }

    this(Date date, immutable TimeZone tz = null)
    {
        _timezone = tz is null ? LocalTime() : tz;

        try
        {
            immutable adjustedTime = (date - Date()).total!"hnsecs";
            immutable standardTime = _timezone.tzToUTC(adjustedTime);
            this(standardTime);
        }
        catch
            assert(0);
    }

    this(long stdTime, immutable TimeZone tz = null)
    {
        _stdTime = stdTime;
        _timezone = tz is null ? LocalTime() : tz;
    }

    @property stdTime()
    {
        return _stdTime;
    }

    @property dayOfGregorianCal()
    {
        adjTime;

        long hnsecs;
        days = hnsecs;

        return 0;
    }

    Date opCast()
    {
        return Date(dayOfGregorianCal);
    }

    DateTime opCast()() if(is(Unqual))
    {
    }

    string toISOString()
    {
        import std.format;
        try
        {
            auto dateTime = DateTime();
            return format("%s",
                          dateTime.toISOString);
        }
        catch
            assert(0);
    }

    @property adjTime()
    {
        _timezone.utcToTZ(_stdTime);
    }


    long  _stdTime;
    Rebindable!(immutable TimeZone) _timezone;
}

struct Date
{
    short _year;
    ubyte _day;

    this(int, int) { }
    this(int) { }
    @property year() { }
    @property month() { }
    @property day() { }

    @property day()
    {
        return _day;
    }

    Duration opBinary(string op)(Date)
    {
        return dur!"days"(dayOfGregorianCal);
    }

    @property dayOfGregorianCal()
    {
        return 0;
    }
}

struct TimeOfDay
{
    @property second() { }
}

struct DateTime
{
    this(Date) { }
    this(int) { }
    @property date() { }
    @property timeOfDay() { }
    string toISOString() { return ""; }
}


class TimeZone
{
    long utcToTZ(long) const;
    long tzToUTC(long) const;
    this() immutable { }

    Duration utcOffsetAt(long stdTime)
    {
        return dur!"hnsecs"(stdTime);
    }
}

class LocalTime : TimeZone
{
    static immutable(LocalTime) opCall()
    {
        return (cast()&singleton)();
    }

    bool hasDST()
    {
        try
        {
            cast(Date)Clock.currTime;
            auto janOffset = SysTime(Date()).stdTime - SysTime(Date()).stdTime;
            auto julyOffset = SysTime(Date()).stdTime -
SysTime(Date()).stdTime;

            return janOffset != julyOffset;
        }
        catch
            assert(0);
    }

    this() immutable { }

    static localTime = new immutable(LocalTime);
    immutable(LocalTime) singleton()
    {
        synchronized
            return localTime;
    }
}

time_t stdTimeToUnixTime()
{
    return cast(time_t)convert!("hnsecs", "seconds")(0);
}

SysTime DosFileTimeToSysTime()
{
    try
        return SysTime(DateTime());
    catch
        assert(0);
}

-- 
You are receiving this mail because:
You are watching all bug changes.
May 18, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #4 from Iain Buclaw <ibuclaw@gdcproject.org> ---
I'll try updating gcc, just incase it's a trunk bug.

-- 
You are receiving this mail because:
You are watching all bug changes.
May 18, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #5 from Johannes Pfau <johannespfau@gmail.com> ---
I can reproduce this on 6.1.0 and 5.3.0, so it's probably not a trunk bug.
(unfortunately)

-- 
You are receiving this mail because:
You are watching all bug changes.
May 18, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #6 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Johannes Pfau from comment #5)
> I can reproduce this on 6.1.0 and 5.3.0, so it's probably not a trunk bug.
> (unfortunately)

OK. It seems like it's related to #211.  There is something not right in the way we set method and lambdas as "inline".  We should probably get rid of this and make way for pragma(inline).

-- 
You are receiving this mail because:
You are watching all bug changes.
May 18, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #7 from Iain Buclaw <ibuclaw@gdcproject.org> ---
Nope, it's just enough to not trigger the "reduced", but the larger test
(std.datetime) still fails.

-- 
You are receiving this mail because:
You are watching all bug changes.
May 19, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #8 from Iain Buclaw <ibuclaw@gdcproject.org> ---
(In reply to Johannes Pfau from comment #2)
> Strange, I think I've tested 32bit when I initially implemented the automake/libtool stuff. So this is probably a regression in the last 2-3 weeks?

Yes, you are right.  Just running a git bisect between master and 05c618d.

-- 
You are receiving this mail because:
You are watching all bug changes.
May 19, 2016
http://bugzilla.gdcproject.org/show_bug.cgi?id=224

--- Comment #9 from Iain Buclaw <ibuclaw@gdcproject.org> ---
((86b6f18...)|BISECTING) $ git bisect good
aa70af04b8c407a169fc65b3fde8a6966b134842 is the first bad commit
commit aa70af04b8c407a169fc65b3fde8a6966b134842
Author: Johannes Pfau <johannespfau@gmail.com>
Date:   Mon May 16 10:41:45 2016 +0200

    Fix some more issue #223 cases

:040000 040000 d30e448ff4270f117f7860fdf8a72713503f0e3c 5a6b8f354fef6ad62c5311e4d96455215ecbc0b1 M      gcc



OK, so maybe I was wrong about putting save_expr inside build_boolop. >:-)

-- 
You are receiving this mail because:
You are watching all bug changes.
« First   ‹ Prev
1 2