**Describe the bug**

```
    /// We count all hour-length intervals, unrelated to offset changes.
    inline time_t toRelativeHourNum(time_t t) const
    {
        if (t >= 0 && offset_is_whole_number_of_hours_during_epoch)
            return t / 3600;

        /// Assume that if offset was fractional, then the fraction is the same as at the beginning of epoch.
        /// NOTE This assumption is false for "Pacific/Pitcairn" and "Pacific/Kiritimati" time zones.
        return (t + DATE_LUT_ADD + 86400 - offset_at_start_of_epoch) / 3600 - (DATE_LUT_ADD / 3600);
    }

    template <typename DateOrTime>
    inline time_t toRelativeHourNum(DateOrTime v) const
    {
        return toRelativeHourNum(lut[toLUTIndex(v)].date);
    }

```
the code snippet is in DateLUTImpl.h 

lut[toLUTIndex(v)].date is Int64.
below is type define in mac OS.
```
typedef long long               int64_t;
typedef __darwin_time_t         time_t;
typedef long                    __darwin_time_t; 
```

function overload will cause  infinite loop

**Does it reproduce on recent release?**

It's a portability issue


**How to reproduce**

execute SQL on clickhouse which build on macOS

select toRelativeHourNum(toDate('2020-10-01'));



{
        return lut[toFirstDayNumOfISOYearIndex(t)].date;
    }
    
    
    template <typename DateOrTime>
    inline unsigned toISOWeek(DateOrTime v) const
    {
        return 1 + (toFirstDayNumOfWeek(v) - toFirstDayNumOfISOYear(v)) / 7;
    }
    /*
      The bits in week_mode has the following meaning:
       WeekModeFlag::MONDAY_FIRST (0)  If not set Sunday is first day of week
                      If set Monday is first day of week
       WeekModeFlag::YEAR (1) If not set Week is in range 0-53
        Week 0 is returned for the the last week of the previous year (for
        a date at start of january) In this case one can get 53 for the
        first week of next year.  This flag ensures that the week is
        relevant for the given year. Note that this flag is only
        relevant if WeekModeFlag::JANUARY is not set.
                  If set Week is in range 1-53.
        In this case one may get week 53 for a date in January (when
        the week is that last week of previous year) and week 1 for a
        date in December.
      WeekModeFlag::FIRST_WEEKDAY (2) If not set Weeks are numbered according
                        to ISO 8601:1988
                  If set The week that contains the first
                        'first-day-of-week' is week 1.