Schedule::until calls result.isRegular_.pop_back() that produces unspecified behaviour when isRegular_ is empty. Particularly, it is empty for schedules created with Schedule::Schedule(const std::vector<Date>& dates, const Calendar& calendar, BusinessDayConvention convention)).
I suggest you either restrict the method to complete interfaces or do pop_back only for complete interfaces.
Moved to https://github.com/lballabio/QuantLib/issues/360