<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/libcxx/test/std/localization, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2019-12-14T02:24:18+00:00</updated>
<entry>
<title>[libcxx] [test] Include missing headers. (NFC)</title>
<updated>2019-12-14T02:24:18+00:00</updated>
<author>
<name>Stephan T. Lavavej</name>
<email>stl@microsoft.com</email>
</author>
<published>2019-12-14T02:14:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=5688f168528377d1c55fe1feff82c9caa21a7c0a'/>
<id>urn:sha1:5688f168528377d1c55fe1feff82c9caa21a7c0a</id>
<content type='text'>
libcxx/test/std/containers/sequences/array/at.pass.cpp
Need to include &lt;stdexcept&gt; for std::out_of_range.

libcxx/test/std/localization/locale.categories/category.time/*
Need to include &lt;ios&gt; for std::ios.
</content>
</entry>
<entry>
<title>libcxx: Rename .hpp files in libcxx/test/support to .h</title>
<updated>2019-08-21T00:14:12+00:00</updated>
<author>
<name>Nico Weber</name>
<email>nicolasweber@gmx.de</email>
</author>
<published>2019-08-21T00:14:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=cc89063bff0f73ec7049a1dcb5d4688ae6806941'/>
<id>urn:sha1:cc89063bff0f73ec7049a1dcb5d4688ae6806941</id>
<content type='text'>
LLVM uses .h as its extension for header files.

Files renamed using:

    for f in libcxx/test/support/*.hpp; do git mv $f ${f%.hpp}.h; done

References to the files updated using:

    for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
        a=$(basename $f);
        echo $a;
        rg -l $a libcxx | xargs sed -i '' "s/$a/${a%.hpp}.h/";
    done

HPP include guards updated manually using:

    for f in $(git diff master | grep 'rename from' | cut -f 3 -d ' '); do
      echo ${f%.hpp}.h ;
    done | xargs mvim

Differential Revision: https://reviews.llvm.org/D66104

llvm-svn: 369481
</content>
</entry>
<entry>
<title>[libcxx] Add XFAIL for facet test when back-deploying to older macOS</title>
<updated>2019-06-14T14:40:38+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2019-06-14T14:40:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=0feebef501fc9988493203dee0d86bb7792e587f'/>
<id>urn:sha1:0feebef501fc9988493203dee0d86bb7792e587f</id>
<content type='text'>
llvm-svn: 363405
</content>
</entry>
<entry>
<title>No longer reject inputs when using a locale that has grouping information _and_ the input has no grouping characters at all. We continue to reject cases when the input has grouping characters in the wrong place. Fixes PR#28704</title>
<updated>2019-06-04T15:18:46+00:00</updated>
<author>
<name>Marshall Clow</name>
<email>mclow.lists@gmail.com</email>
</author>
<published>2019-06-04T15:18:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=605d62e9de00b9f95a00202f66dfb03fe52ca523'/>
<id>urn:sha1:605d62e9de00b9f95a00202f66dfb03fe52ca523</id>
<content type='text'>
llvm-svn: 362508
</content>
</entry>
<entry>
<title>Add include for 'test_macros.h' to all the tests that were missing them. Thanks to Zoe for the (big, but simple) patch. NFC intended.</title>
<updated>2019-05-31T18:35:30+00:00</updated>
<author>
<name>Marshall Clow</name>
<email>mclow.lists@gmail.com</email>
</author>
<published>2019-05-31T18:35:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=7fc6a55688c816f5fc1a5481ae7af25be7500356'/>
<id>urn:sha1:7fc6a55688c816f5fc1a5481ae7af25be7500356</id>
<content type='text'>
llvm-svn: 362252
</content>
</entry>
<entry>
<title>[libc++][test] Update some wstring_convert tests for MSVC quirks</title>
<updated>2019-04-22T19:08:13+00:00</updated>
<author>
<name>Casey Carter</name>
<email>Casey@Carter.net</email>
</author>
<published>2019-04-22T19:08:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e3f7074c7e95551c86bfc489ca0f5e23d7a64dcc'/>
<id>urn:sha1:e3f7074c7e95551c86bfc489ca0f5e23d7a64dcc</id>
<content type='text'>
Due to MSVC's decision to encode `wchar_t` as UTF-16, it rejects wide
character/string literals that expect a character value greater than
`\xffff`. UTF-16 `wchar_t` is clearly non-conforming, given that the
standard requires wchar_t to be capable of representing all characters
in the supported wide character execution sets, but rejecting e.g.
`\x40003` is a reasonably sane compromise given that encoding choice:
there's an expectation that `\xFOO` produces a single character in the
resulting literal. Consequently `L'\x40003'`/`L"\x40003"` are ill-formed
literals on MSVC. `L'\U00040003'` is a high surrogate (and produces a
warning about ignoring the "second character" in a multi-character
literal), and `L"\U00040003"` is a perfectly-valid `const wchar_t[3]`.

This change updates these tests to use universal-character-names instead
of raw values for the intended character values, which technically makes
them portable even to implementations that don't use a unicode
transformation format encoding for their wide character execution
character set. The two-character literal `L"\u1005e"` is awkward - the
`e` looks like part of the UCN's hex encoding - but necessary to compile
in '03 mode since '03 didn't allow UCNs to be used for members of the
basic execution character set even in character/string literals.

I've also eliminated the extraneous `\x00` "bonus null-terminator" in
some of the string literals which doesn't affect the tested behavior.

I'm sorry about using `*L"\U00040003"` in `conversions.string/to_bytes.pass.cpp`,
but it's correct for platforms with 32-bit wchar_t, *and* doesn't
trigger narrowing warnings as did the prior `CharT(0x40003)`.

Differential Revision: https://reviews.llvm.org/D60950

llvm-svn: 358908
</content>
</entry>
<entry>
<title>[libc++] Remove unnecessary &lt;iostream&gt; #includes in tests</title>
<updated>2019-03-28T16:38:15+00:00</updated>
<author>
<name>Louis Dionne</name>
<email>ldionne@apple.com</email>
</author>
<published>2019-03-28T16:38:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=afeff20c0f988d84b888b9a5581e814b1735ec0f'/>
<id>urn:sha1:afeff20c0f988d84b888b9a5581e814b1735ec0f</id>
<content type='text'>
Some tests #include &lt;iostream&gt; but they don't use anything from the
header. Those are probably artifacts of when the tests were developped.

llvm-svn: 357181
</content>
</entry>
<entry>
<title>Support tests in freestanding</title>
<updated>2019-02-04T20:31:13+00:00</updated>
<author>
<name>JF Bastien</name>
<email>jfbastien@apple.com</email>
</author>
<published>2019-02-04T20:31:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2df59c50688c122bbcae7467d3eaf862c3ea3088'/>
<id>urn:sha1:2df59c50688c122bbcae7467d3eaf862c3ea3088</id>
<content type='text'>
Summary:
Freestanding is *weird*. The standard allows it to differ in a bunch of odd
manners from regular C++, and the committee would like to improve that
situation. I'd like to make libc++ behave better with what freestanding should
be, so that it can be a tool we use in improving the standard. To do that we
need to try stuff out, both with "freestanding the language mode" and
"freestanding the library subset".

Let's start with the super basic: run the libc++ tests in freestanding, using
clang as the compiler, and see what works. The easiest hack to do this:

In utils/libcxx/test/config.py add:

  self.cxx.compile_flags += ['-ffreestanding']

Run the tests and they all fail.

Why? Because in freestanding `main` isn't special. This "not special" property
has two effects: main doesn't get mangled, and main isn't allowed to omit its
`return` statement. The first means main gets mangled and the linker can't
create a valid executable for us to test. The second means we spew out warnings
(ew) and the compiler doesn't insert the `return` we omitted, and main just
falls of the end and does whatever undefined behavior (if you're luck, ud2
leading to non-zero return code).

Let's start my work with the basics. This patch changes all libc++ tests to
declare `main` as `int main(int, char**` so it mangles consistently (enabling us
to declare another `extern "C"` main for freestanding which calls the mangled
one), and adds `return 0;` to all places where it was missing. This touches 6124
files, and I apologize.

The former was done with The Magic Of Sed.

The later was done with a (not quite correct but decent) clang tool:

  https://gist.github.com/jfbastien/793819ff360baa845483dde81170feed

This works for most tests, though I did have to adjust a few places when e.g.
the test runs with `-x c`, macros are used for main (such as for the filesystem
tests), etc.

Once this is in we can create a freestanding bot which will prevent further
regressions. After that, we can start the real work of supporting C++
freestanding fairly well in libc++.

&lt;rdar://problem/47754795&gt;

Reviewers: ldionne, mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, arphaman, miyuki, libcxx-commits

Differential Revision: https://reviews.llvm.org/D57624

llvm-svn: 353086
</content>
</entry>
<entry>
<title>[libc++] Use runtime rather then compile-time glibc version check</title>
<updated>2019-01-28T20:39:50+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@chromium.org</email>
</author>
<published>2019-01-28T20:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=4155e789120b764911d7da5ec1ac7dc37069889b'/>
<id>urn:sha1:4155e789120b764911d7da5ec1ac7dc37069889b</id>
<content type='text'>
glibc supports versioning, so it's possible to build against older
version and run against newer version. This is sometimes relied on
in practice, e.g. in Fuchsia build we build against older sysroot
(equivalent to Ubuntu Trusty) to cover the broadest possible range
of host systems, but that doesn't necessarily match the system that
binary is going to run on which may have newer version, in which case
the compile test used in curr_symbol is going to fail. Using runtime
check is more reliable.

Differential Revision: https://reviews.llvm.org/D56702

llvm-svn: 352425
</content>
</entry>
<entry>
<title>Update more file headers across all of the LLVM projects in the monorepo</title>
<updated>2019-01-19T10:56:40+00:00</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2019-01-19T10:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=57b08b0944046a6a57ee9b7b479181f548a5b9b4'/>
<id>urn:sha1:57b08b0944046a6a57ee9b7b479181f548a5b9b4</id>
<content type='text'>
to reflect the new license. These used slightly different spellings that
defeated my regular expressions.

We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.

Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.

llvm-svn: 351648
</content>
</entry>
</feed>
