Commit Graph

4449 Commits

Author SHA1 Message Date
Dan Albert
acd0f55f5a DO NOT MERGE: Fix bug in random. am: 4151c1e35a
am: 8449105f92

Change-Id: Ib7b8eafc1b77a835073736229dfa67f3123bf531
2019-09-17 12:06:27 -07:00
Louis Dionne
f0f107c222 DO NOT MERGE: [libc++] Move __clamp_to_integral to <cmath>, and harden against min()/max() macros am: 7af7a63c2e
am: d190f65c64

Change-Id: If4680e91b42c8d183de0b7e15a9b682f3efa7fb5
2019-09-17 12:06:24 -07:00
Louis Dionne
c3a80bd37a DO NOT MERGE: [libc++] Add __truncating_cast for safely casting float types to integers am: 55b6136b3a
am: 9546d85a3d

Change-Id: I48b42cca42e5a4eeb763de585b72cb0dfb854cd7
2019-09-17 12:06:21 -07:00
Dan Albert
8449105f92 DO NOT MERGE: Fix bug in random.
am: 4151c1e35a

Change-Id: I49f7617ddb21955b7f7c8ea2fba95f46eb7b2fc8
2019-09-17 12:01:10 -07:00
Louis Dionne
d190f65c64 DO NOT MERGE: [libc++] Move __clamp_to_integral to <cmath>, and harden against min()/max() macros
am: 7af7a63c2e

Change-Id: I2e4e0cdbbfa903ab8785f6d71f1afd0468cd1394
2019-09-17 12:01:07 -07:00
Louis Dionne
9546d85a3d DO NOT MERGE: [libc++] Add __truncating_cast for safely casting float types to integers
am: 55b6136b3a

Change-Id: I621f34d4fdde4ddcf2ca2083e0ab524428e2e188
2019-09-17 12:01:04 -07:00
Dan Albert
4151c1e35a DO NOT MERGE: Fix bug in random.
Test: ./run_test.py --bitness 32
Test: ./run_test.py --bitness 64
Test: ./run_test.py --bitness 64 --host
Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: I71708114d7fc8ed90c30b4d32b01d3f3aef7600b
(cherry picked from commit a1d1caa3d831030ce802ed335a9743180911d553)
(cherry picked from commit b8d9dff1befd40627b8c2c6e021cd5a3e4fe8b52)
2019-09-13 14:46:34 -07:00
Louis Dionne
7af7a63c2e DO NOT MERGE: [libc++] Move __clamp_to_integral to <cmath>, and harden against min()/max() macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@370900 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 87e6185621d332d2ef8695b94778663380c83bb9)

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: Ice92a8ea6f675be069a70c5ad1003cf99b4fc474
(cherry picked from commit 82e0483c4a47233ed2f7bab545b32e5ddd474e59)
(cherry picked from commit 21beede0ddfffab3e31961a68f7282b54f3ab52a)
2019-09-13 14:46:34 -07:00
Louis Dionne
55b6136b3a DO NOT MERGE: [libc++] Add __truncating_cast for safely casting float types to integers
This is needed anytime we need to clamp an arbitrary floating point
value to an integer type.

Thanks to Eric Fiselier for the patch.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@370891 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit c9ac8d533010d8915bcfdecab891fb451f71ce74)
(cherry picked from commit 4561f55204960c0b3bc4594089ddcf56e5655cad)
(cherry picked from commit f4471784fdb5799b9862febc385a26becfbe53b3)

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: I3d402ed0237a2f5f934a5d368ca91304bfcd9ed0
2019-09-13 14:46:25 -07:00
Dan Albert
188246de28 DO NOT MERGE: Fix bug in random.
Test: ./run_test.py --bitness 32
Test: ./run_test.py --bitness 64
Test: ./run_test.py --bitness 64 --host
Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: I71708114d7fc8ed90c30b4d32b01d3f3aef7600b
(cherry picked from commit a1d1caa3d831030ce802ed335a9743180911d553)
2019-09-13 14:42:11 -07:00
Louis Dionne
280d459517 DO NOT MERGE: [libc++] Move __clamp_to_integral to <cmath>, and harden against min()/max() macros
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@370900 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit 87e6185621d332d2ef8695b94778663380c83bb9)

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: Ice92a8ea6f675be069a70c5ad1003cf99b4fc474
(cherry picked from commit 82e0483c4a47233ed2f7bab545b32e5ddd474e59)
2019-09-13 14:42:11 -07:00
Louis Dionne
baeddde44d DO NOT MERGE: [libc++] Add __truncating_cast for safely casting float types to integers
This is needed anytime we need to clamp an arbitrary floating point
value to an integer type.

Thanks to Eric Fiselier for the patch.

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

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@370891 91177308-0d34-0410-b5e6-96231b3b80d8
(cherry picked from commit c9ac8d533010d8915bcfdecab891fb451f71ce74)
(cherry picked from commit 4561f55204960c0b3bc4594089ddcf56e5655cad)

Bug: https://bugs.chromium.org/p/chromium/issues/detail?id=994957
Bug: http://b/139690488
Change-Id: Ibfa9f6465214466511e3d35b02eb3b77488050e7
2019-09-13 14:41:23 -07:00
Justin Yun
82c0df65eb Mark the module as VNDK or VNDK-SP in Android.bp
As a VNDK/VNDK-SP module, Android.bp must have 'vndk' tag as well
as 'vendor_available: true'.

For a VNDK module, the 'vndk' tag has 'enabled: true'.
It will be installed system/lib(64)/vndk as a vendor variant.

For a VNDK-SP module, the 'vndk' tag has
'support_system_process: true' as well as 'enabled: true'.
It will be installed system/lib(64)/vndk-sp as a vendor variant.

Bug: 63866913
Test: build and boot with BOARD_VNDK_VERSION=current
Change-Id: I8df3b9ec1a867fdbaac8cf348da4cfd56433435b
2017-07-25 14:44:58 +09:00
Tom Cherry
98a6e70aad Update XFAIL am: 0aea6aeca4 am: 947fa39a98 am: 3ea027c8d1
am: 18773d570c

Change-Id: I725914bb1b34a3c620bb62eaeda52abaa3e8b920
2017-06-13 21:54:55 +00:00
Tom Cherry
18773d570c Update XFAIL am: 0aea6aeca4 am: 947fa39a98
am: 3ea027c8d1

Change-Id: I0bd4601db9aae4cd3c1d8e3652de991bfaf49e87
2017-06-13 21:35:55 +00:00
Tom Cherry
3ea027c8d1 Update XFAIL am: 0aea6aeca4
am: 947fa39a98

Change-Id: Id27aee66b3d78ddc3ef9efe70cb81f71fc70f357
2017-06-13 21:22:19 +00:00
Tom Cherry
947fa39a98 Update XFAIL
am: 0aea6aeca4

Change-Id: Ie018248968ba1b50b693eeda2b4f0ab91b89b63f
2017-06-13 21:19:18 +00:00
Tom Cherry
0aea6aeca4 Update XFAIL
The latest clang in our tree now passes the below four tests, so
remove their XFAIL:

    libc++ :: std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
    libc++ :: std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp

Bug: 36401676
Test: ./run_tests.py
Change-Id: Ic39f509169463d434cb785999b0deecd0adca415
2017-06-12 17:55:11 -07:00
Tom Cherry
5d6277c9df Update XFAIL am: 1e705dad85 am: 9e537aac67 am: 3c4b90f910
am: 00452d2105

Change-Id: I94a5760b676626ef81931e404766f9070db18472
2017-04-17 22:37:52 +00:00
Tom Cherry
00452d2105 Update XFAIL am: 1e705dad85 am: 9e537aac67
am: 3c4b90f910

Change-Id: I24fa4e5127fc765ae38c26ab55b3739f920af0dd
2017-04-17 22:13:54 +00:00
Tom Cherry
3c4b90f910 Update XFAIL am: 1e705dad85
am: 9e537aac67

Change-Id: Ib67950e6f2fe1df0fe5c927594f5b5d87ae037e9
2017-04-17 22:04:49 +00:00
Tom Cherry
9e537aac67 Update XFAIL
am: 1e705dad85

Change-Id: I9b75b38c6fede6bbfe1c0457b2bdd5fea025041a
2017-04-17 21:58:35 +00:00
Tom Cherry
1e705dad85 Update XFAIL
The latest clang in our tree now passes the below four tests, so
remove their XFAIL:

    libc++ :: std/strings/string.view/string_view.literals/literal.pass.cpp
    libc++ :: std/strings/string.view/string_view.literals/literal1.pass.cpp
    libc++ :: std/strings/string.view/string_view.literals/literal2.pass.cpp
    libc++ :: std/strings/string.view/string_view.literals/literal3.pass.cpp

Bug: 36400049
Test: ./run_tests.py
Change-Id: I309d1eed2a04ab13165167ab2c0b3a8334014cbd
2017-04-17 13:16:08 -07:00
Dan Willemsen
1aa603c3c0 Mark as vendor_available am: a93d177f03
am: f705a6d41e

Change-Id: I7a646cf69a5c0dad7cdc3abaf4d783819c7f31e5
2017-04-12 20:55:27 +00:00
Dan Willemsen
f705a6d41e Mark as vendor_available
am: a93d177f03

Change-Id: I9d1c8cecde7c94715c148649bdf108a3345608ee
2017-04-12 20:43:17 +00:00
Dan Willemsen
c206e95cce Mark as vendor_available am: 4cef24ee3c am: 8de3a73b25 am: ef387f085c
am: a1cce971a4

Change-Id: I79b72cb8e51cbe6524e7b078f54d1f9f99860fb7
2017-04-12 16:09:16 +00:00
Dan Willemsen
a1cce971a4 Mark as vendor_available am: 4cef24ee3c am: 8de3a73b25
am: ef387f085c

Change-Id: Ibd3cb7ae52367bbe595dd36839d1865dcea77c08
2017-04-12 15:59:09 +00:00
Dan Willemsen
ef387f085c Mark as vendor_available am: 4cef24ee3c
am: 8de3a73b25

Change-Id: Id2ce2b1c9108bb0c5a91c20a6cbbfff320e32246
2017-04-12 15:53:15 +00:00
Dan Willemsen
8de3a73b25 Mark as vendor_available
am: 4cef24ee3c

Change-Id: I4abe5361513a6345b9990098e3d0841c443c46a7
2017-04-12 15:48:14 +00:00
Dan Willemsen
a93d177f03 Mark as vendor_available
By setting vendor_available, the following may become true:

* a prebuilt library from this release may be used at runtime by
  in a later releasse (by vendor code compiled against this release).
  so this library shouldn't depend on runtime state that may change
  in the future.
* this library may be loaded twice into a single process (potentially
  an old version and a newer version). The symbols will be isolated
  using linker namespaces, but this may break assumptions about 1
  library in 1 process (your singletons will run twice).

Background:

This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.

At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.

It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:

https://android-review.googlesource.com/368372

None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.

Bug: 36426473
Bug: 36079834
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Test: attempt to compile with BOARD_VNDK_VERSION := current
Merged-In: I5aa9e3463c53a2c13110d6fffb61a2bbc09892f2
Change-Id: I5aa9e3463c53a2c13110d6fffb61a2bbc09892f2
2017-04-11 18:27:33 +00:00
Dan Willemsen
4cef24ee3c Mark as vendor_available
By setting vendor_available, the following may become true:

* a prebuilt library from this release may be used at runtime by
  in a later releasse (by vendor code compiled against this release).
  so this library shouldn't depend on runtime state that may change
  in the future.
* this library may be loaded twice into a single process (potentially
  an old version and a newer version). The symbols will be isolated
  using linker namespaces, but this may break assumptions about 1
  library in 1 process (your singletons will run twice).

Background:

This means that these modules may be built and installed twice --
once for the system partition and once for the vendor partition. The
system version will build just like today, and will be used by the
framework components on /system. The vendor version will build
against a reduced set of exports and libraries -- similar to, but
separate from, the NDK. This means that all your dependencies must
also mark vendor_available.

At runtime, /system binaries will load libraries from /system/lib*,
while /vendor binaries will load libraries from /vendor/lib*. There
are some exceptions in both directions -- bionic(libc,etc) and liblog
are always loaded from /system. And SP-HALs (OpenGL, etc) may load
/vendor code into /system processes, but the dependencies of those
libraries will load from /vendor until it reaches a library that's
always on /system. In the SP-HAL case, if both framework and vendor
libraries depend on a library of the same name, both versions will be
loaded, but they will be isolated from each other.

It's possible to compile differently -- reducing your source files,
exporting different include directories, etc. For details see:

https://android-review.googlesource.com/368372

None of this is enabled unless the device opts into the system/vendor
split with BOARD_VNDK_VERSION := current.

Bug: 36426473
Bug: 36079834
Test: Android-aosp_arm.mk is the same before/after
Test: build.ninja is the same before/after
Test: build-aosp_arm.ninja is the same before/after
Test: attempt to compile with BOARD_VNDK_VERSION := current
Change-Id: I5aa9e3463c53a2c13110d6fffb61a2bbc09892f2
2017-04-10 18:14:29 -07:00
Tom Cherry
1829495c61 Update XFAIL am: 8fe43059c4 am: 4a2f5974ad
am: c936042a8d

Change-Id: Ic95a7f543eedf6337fca2f02fbbd38873e10c59d
2017-03-20 18:55:38 +00:00
Tom Cherry
fb4e1c772e Move test/libcxx/android/ to utils/libcxx/android/ am: 79ccd0d41d am: c3a4658c6f
am: 4902b5080f

Change-Id: Ia54db92e2aad3acfdd89dbf8d3bc5307ad98c90b
2017-03-20 18:55:36 +00:00
Dan Albert
484d8fb329 Merge to upstream r297772. am: b9e7f084bd am: fabe890b75
am: ed31f4b9be

Change-Id: Ieb19cbc938b9511d6441b9ac7cf6a3e13c4daf74
2017-03-20 18:55:32 +00:00
Tom Cherry
c936042a8d Update XFAIL am: 8fe43059c4
am: 4a2f5974ad

Change-Id: Ic636a14191b1231f26bbf78d5b5459264d80820d
2017-03-20 18:45:37 +00:00
Tom Cherry
4902b5080f Move test/libcxx/android/ to utils/libcxx/android/ am: 79ccd0d41d
am: c3a4658c6f

Change-Id: I7969ee0fd2778428d92df788d0b71a8ba779493b
2017-03-20 18:45:35 +00:00
Dan Albert
ed31f4b9be Merge to upstream r297772. am: b9e7f084bd
am: fabe890b75

Change-Id: I84b59f55a5e26cda1cb10d992f7ed0093c97df71
2017-03-20 18:45:32 +00:00
Tom Cherry
4a2f5974ad Update XFAIL
am: 8fe43059c4

Change-Id: Ie0f965869dd1b6bc2e33deb210aec5ea877129a6
2017-03-20 18:42:08 +00:00
Tom Cherry
c3a4658c6f Move test/libcxx/android/ to utils/libcxx/android/
am: 79ccd0d41d

Change-Id: Ia33ff6f083b8e53b705159f786564730cc0f219d
2017-03-20 18:42:05 +00:00
Dan Albert
fabe890b75 Merge to upstream r297772.
am: b9e7f084bd

Change-Id: I7fca6bc5f0d73e897ce719dcd166ed67dec01e45
2017-03-20 18:42:02 +00:00
Tom Cherry
8fe43059c4 Update XFAIL
The latest clang in our tree now passes the below four tests:

    libc++ :: std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
    libc++ :: std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
    libc++ :: std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
    libc++ :: std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp

It however fails the below six:

    libc++ :: std/strings/string.view/string_view.literals/literal.pass.cpp
    libc++ :: std/strings/string.view/string_view.literals/literal1.pass.cpp
    libc++ :: std/strings/string.view/string_view.literals/literal2.pass.cpp
    libc++ :: std/strings/string.view/string_view.literals/literal3.pass.cpp
    libc++ :: std/strings/basic.string/string.cons/implicit_deduction_guides.pass.cpp
    libc++ :: std/strings/string.view/string.view.cons/implicit_deduction_guides.pass.cpp

Bug: 33278386
Bug: 36400049
Bug: 36401676
Test: ./run_tests.py
Change-Id: I24394534ba77ecbc2cdc682ac5e681baefb11c16
2017-03-17 15:33:19 -07:00
Tom Cherry
79ccd0d41d Move test/libcxx/android/ to utils/libcxx/android/
This got refactored upstream.

Test: checkbuild and ./run_tests.py
Change-Id: I801869923cf7c51528de354f8a3da705f188ff43
2017-03-17 15:28:00 -07:00
Dan Albert
b9e7f084bd Merge to upstream r297772.
Bug: None
Test: make checkbuild && ./run_tests.py
Change-Id: I9e755c76a760f218abd871008e3d48c8f044afd1
2017-03-14 15:12:59 -07:00
Billy Robert O'Neal III
0b23f9c81d Fixed unintentional assignment-in-assert in new "extending memory management tools" algorithms.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297772 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-14 19:36:30 +00:00
Marshall Clow
7a16fa8ae2 Mark LWG issues 2868, 2872, and 2890 as complete. There's nothing we need to do for them.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297758 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-14 17:35:56 +00:00
Marshall Clow
755dd5959c Also mark LWG#2785 as complete, because we already implemented that
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297753 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-14 17:24:29 +00:00
Marshall Clow
abba685fcd Implement LWG2784, and mark 2786, 2795, 2804, 2812, 2826, 2834, 2837 and 2838 as complete - since we do them already
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297752 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-14 17:08:47 +00:00
Bruno Cardoso Lopes
dd1f05915f Fix cmake to find the compiler-rt libs on darwin
Followup for r297553, which left darwin in a broken state
http://green.lab.llvm.org/green/job/clang-stage2-cmake-RgSan_build/3812

rdar://problem/31011980

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297703 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-14 04:12:29 +00:00
Eric Fiselier
5cdf67386f fix test coverage capture dirs
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297555 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-11 05:28:09 +00:00
Eric Fiselier
c51e0d21a1 Change test coverage generation to use llvm-cov instead of gcov.
Clang doesn't produce gcov compatible coverage files. This
causes lcov to break because it uses gcov by default. This
patch switches lcov to use llvm-cov as the gcov-tool.

Unfortunatly llvm-cov doesn't provide a gcov like interface by
default so it won't work with lcov. However `llvm-cov gcov` does.
For this reason we generate 'llvm-cov-wrapper' script that always
passes the gcov flag.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@297553 91177308-0d34-0410-b5e6-96231b3b80d8
2017-03-11 03:24:18 +00:00