//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// <ios>

// class ios_base

// static int xalloc();

#include <ios>
#include <cassert>

int main(int, char**)
{
    assert(std::ios_base::xalloc() == 0);
    assert(std::ios_base::xalloc() == 1);
    assert(std::ios_base::xalloc() == 2);
    assert(std::ios_base::xalloc() == 3);
    assert(std::ios_base::xalloc() == 4);

  return 0;
}

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// <ios>

// class ios_base

// static int xalloc();

#include <ios>
#include <cassert>

int main(int, char**)
{
    int index = std::ios_base::xalloc();
    for (int i = 0; i < 10000; ++i)
        assert(std::ios_base::xalloc() == ++index);

  return 0;
}

Increase portability of xalloc test
[libc++] Increase portability of xalloc test

Do not assume that xalloc() starts at 0, which is not specified by the
Standard.

Thanks to Andrey Maksimov for the patch.
Differential Revision: https://reviews.llvm.org/D58299

git-svn-id: 756ef344af921d95d562d9e9f9389127a89a6314@355160 91177308-0d34-0410-b5e6-96231b3b80d8
