• Home
  • History
  • Annotate
  • only in /external/compiler-rt/lib/ubsan/
History log of /external/compiler-rt/lib/ubsan/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5d71de26cedae3dafc17449fe0182045c0bd20e8 21-Jul-2014 Stephen Hines <srhines@google.com> Update compiler-rt for rebase to r212749.

Includes a cherry-pick of:
r213309 - fixes umodsi3

Change-Id: Ic7367e3586b6af7ef74bee6a8cf437d5f28d975a
bsan_diag.cc
2d1fdb26e458c4ddc04155c1d421bced3ba90cd0 29-May-2014 Stephen Hines <srhines@google.com> Update compiler-rt aosp/master for 3.5 (r209699) rebase.

Change-Id: I158a30186f0faea2e2400e9dfdd878db2eb40e90
MakeLists.txt
it_tests/AsanConfig/lit.cfg
it_tests/AsanConfig/lit.site.cfg.in
it_tests/CMakeLists.txt
it_tests/TestCases/Float/cast-overflow.cpp
it_tests/TestCases/Integer/add-overflow.cpp
it_tests/TestCases/Integer/div-overflow.cpp
it_tests/TestCases/Integer/div-zero.cpp
it_tests/TestCases/Integer/incdec-overflow.cpp
it_tests/TestCases/Integer/mul-overflow.cpp
it_tests/TestCases/Integer/negate-overflow.cpp
it_tests/TestCases/Integer/no-recover.cpp
it_tests/TestCases/Integer/shift.cpp
it_tests/TestCases/Integer/sub-overflow.cpp
it_tests/TestCases/Integer/uadd-overflow.cpp
it_tests/TestCases/Integer/uincdec-overflow.cpp
it_tests/TestCases/Integer/umul-overflow.cpp
it_tests/TestCases/Integer/usub-overflow.cpp
it_tests/TestCases/Misc/bool.cpp
it_tests/TestCases/Misc/bounds.cpp
it_tests/TestCases/Misc/deduplication.cpp
it_tests/TestCases/Misc/enum.cpp
it_tests/TestCases/Misc/missing_return.cpp
it_tests/TestCases/Misc/unreachable.cpp
it_tests/TestCases/Misc/vla.c
it_tests/TestCases/TypeCheck/Function/function.cpp
it_tests/TestCases/TypeCheck/Function/lit.local.cfg
it_tests/TestCases/TypeCheck/misaligned.cpp
it_tests/TestCases/TypeCheck/null.cpp
it_tests/TestCases/TypeCheck/vptr.cpp
it_tests/UbsanConfig/lit.cfg
it_tests/UbsanConfig/lit.site.cfg.in
it_tests/lit.common.cfg
bsan_diag.cc
bsan_value.cc
bsan_value.h
e1a6a9aa854641f118369f478ad2b1d30c456ec8 10-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196799:
------------------------------------------------------------------------
r196799 | wdietz2 | 2013-12-09 11:04:33 -0800 (Mon, 09 Dec 2013) | 1 line

ubsan: Fix typo in 'TypeCheck/vptr.cpp' test to resolve 32bit failure.
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_34@196871 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TestCases/TypeCheck/vptr.cpp
48d6b10c74138db9298a2eda28d5c7f5ae72ea42 10-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196612:
------------------------------------------------------------------------
r196612 | wdietz2 | 2013-12-06 13:49:18 -0800 (Fri, 06 Dec 2013) | 1 line

Fix integer tests on platforms where uint64_t is 'unsigned long long'.
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/branches/release_34@196870 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TestCases/Integer/no-recover.cpp
it_tests/TestCases/Integer/uadd-overflow.cpp
it_tests/TestCases/Integer/usub-overflow.cpp
5e43cfa5e7f6d344f4b0a6a9f7a4b2811d5b8bab 14-Nov-2013 Alexey Samsonov <samsonov@google.com> [UBSan] Make sure ASan and UBSan interact properly by running each test from UBSan test suite with and without ASan

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194698 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/AsanConfig/lit.cfg
it_tests/AsanConfig/lit.site.cfg.in
it_tests/CMakeLists.txt
it_tests/Float/cast-overflow.cpp
it_tests/Integer/add-overflow.cpp
it_tests/Integer/div-overflow.cpp
it_tests/Integer/div-zero.cpp
it_tests/Integer/incdec-overflow.cpp
it_tests/Integer/mul-overflow.cpp
it_tests/Integer/negate-overflow.cpp
it_tests/Integer/no-recover.cpp
it_tests/Integer/shift.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Integer/uadd-overflow.cpp
it_tests/Integer/uincdec-overflow.cpp
it_tests/Integer/umul-overflow.cpp
it_tests/Integer/usub-overflow.cpp
it_tests/Misc/bool.cpp
it_tests/Misc/bounds.cpp
it_tests/Misc/deduplication.cpp
it_tests/Misc/enum.cpp
it_tests/Misc/missing_return.cpp
it_tests/Misc/unreachable.cpp
it_tests/Misc/vla.c
it_tests/TestCases/Float/cast-overflow.cpp
it_tests/TestCases/Integer/add-overflow.cpp
it_tests/TestCases/Integer/div-overflow.cpp
it_tests/TestCases/Integer/div-zero.cpp
it_tests/TestCases/Integer/incdec-overflow.cpp
it_tests/TestCases/Integer/mul-overflow.cpp
it_tests/TestCases/Integer/negate-overflow.cpp
it_tests/TestCases/Integer/no-recover.cpp
it_tests/TestCases/Integer/shift.cpp
it_tests/TestCases/Integer/sub-overflow.cpp
it_tests/TestCases/Integer/uadd-overflow.cpp
it_tests/TestCases/Integer/uincdec-overflow.cpp
it_tests/TestCases/Integer/umul-overflow.cpp
it_tests/TestCases/Integer/usub-overflow.cpp
it_tests/TestCases/Misc/bool.cpp
it_tests/TestCases/Misc/bounds.cpp
it_tests/TestCases/Misc/deduplication.cpp
it_tests/TestCases/Misc/enum.cpp
it_tests/TestCases/Misc/missing_return.cpp
it_tests/TestCases/Misc/unreachable.cpp
it_tests/TestCases/Misc/vla.c
it_tests/TestCases/TypeCheck/Function/function.cpp
it_tests/TestCases/TypeCheck/Function/lit.local.cfg
it_tests/TestCases/TypeCheck/misaligned.cpp
it_tests/TestCases/TypeCheck/null.cpp
it_tests/TestCases/TypeCheck/vptr.cpp
it_tests/TypeCheck/Function/function.cpp
it_tests/TypeCheck/Function/lit.local.cfg
it_tests/TypeCheck/misaligned.cpp
it_tests/TypeCheck/null.cpp
it_tests/TypeCheck/vptr.cpp
it_tests/UbsanConfig/lit.cfg
it_tests/UbsanConfig/lit.site.cfg.in
it_tests/lit.cfg
it_tests/lit.common.cfg
it_tests/lit.site.cfg.in
aed8584ec902e6fe67c03f1102feee6a3f1bdd14 14-Nov-2013 Alexey Samsonov <samsonov@google.com> [UBSan] Update UBSan location rendering to match r194686

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@194687 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
c1a1ed62228288155459d39194995a36aca4a8a6 26-Oct-2013 Peter Collingbourne <peter@pcc.me.uk> Overhaul the symbolizer interface.

This moves away from creating the symbolizer object and initializing the
external symbolizer as separate steps. Those steps now always take place
together.

Sanitizers with a legacy requirement to specify their own symbolizer path
should use InitSymbolizer to initialize the symbolizer with the desired
path, and GetSymbolizer to access the symbolizer. Sanitizers with no
such requirement (e.g. UBSan) can use GetOrInitSymbolizer with no need for
initialization.

The symbolizer interface has been made thread-safe (as far as I can
tell) by protecting its member functions with mutexes.

Finally, the symbolizer interface no longer relies on weak externals, the
introduction of which was probably a mistake on my part.

Differential Revision: http://llvm-reviews.chandlerc.com/D1985

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193448 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/CMakeLists.txt
it_tests/TypeCheck/Function/function.cpp
it_tests/lit.cfg
bsan_diag.cc
9b5f95f5fe1a24be4dfb7436b64cb0e0f8c00535 20-Oct-2013 Peter Collingbourne <peter@pcc.me.uk> Runtime support for the indirect function call checker.

Differential Revision: http://llvm-reviews.chandlerc.com/D1339

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193060 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/CMakeLists.txt
it_tests/TypeCheck/Function/function.cpp
it_tests/TypeCheck/Function/lit.local.cfg
it_tests/lit.cfg
bsan_diag.cc
bsan_diag.h
bsan_handlers.cc
bsan_handlers.h
49d29ed950f9e309a7b755b2a0601ed483ce3ade 20-Oct-2013 Peter Collingbourne <peter@pcc.me.uk> [ubsan] Introduce %clangxx substitution for all C++ tests.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193059 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
it_tests/Integer/add-overflow.cpp
it_tests/Integer/div-overflow.cpp
it_tests/Integer/div-zero.cpp
it_tests/Integer/incdec-overflow.cpp
it_tests/Integer/mul-overflow.cpp
it_tests/Integer/negate-overflow.cpp
it_tests/Integer/no-recover.cpp
it_tests/Integer/shift.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Integer/uadd-overflow.cpp
it_tests/Integer/uincdec-overflow.cpp
it_tests/Integer/umul-overflow.cpp
it_tests/Integer/usub-overflow.cpp
it_tests/Misc/bool.cpp
it_tests/Misc/bounds.cpp
it_tests/Misc/deduplication.cpp
it_tests/Misc/enum.cpp
it_tests/Misc/missing_return.cpp
it_tests/Misc/unreachable.cpp
it_tests/TypeCheck/misaligned.cpp
it_tests/TypeCheck/null.cpp
it_tests/TypeCheck/vptr.cpp
it_tests/lit.cfg
0c46cdebe103e5745a3b7be0b8c9c454a06bcccb 18-Oct-2013 Richard Smith <richard-llvm@metafoo.co.uk> Make the big array in the UBSan C++ runtime be zero-initialized to dramatically
shrink the binary size of the ubsan runtime.

Also fix a bug where long-running processes could eventually trigger a crash in
the runtime by filling up the cache. I've not found a nice way to add a test for
this crasher; ideas welcome.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@192931 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_type_hash.cc
90b0f1e3ba126bb2e92ab51ef379c98782c23d90 04-Oct-2013 Alexey Samsonov <samsonov@google.com> Refactor the usage of strip_path_prefix option and make it more consistent across sanitizers

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@191943 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/misaligned.cpp
bsan_diag.cc
43ac401d8eb9b7d938d75518042eb874ccce0d8e 02-Oct-2013 Nick Lewycky <nicholas@mxc.ca> This fixme is resolved, fix the test.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@191810 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Misc/bool.cpp
d1bf52ecb1211af7fa3fe5f5b05d08033eb1a90c 02-Oct-2013 Nick Lewycky <nicholas@mxc.ca> Make the InvalidValueData take a SourceLocation.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@191807 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_handlers.cc
bsan_handlers.h
7847d77b246635211c3bf465421d49d7af5226c1 10-Sep-2013 Alexey Samsonov <samsonov@google.com> [Sanitizer] Refactor symbolization interface: use class instead of several functions. Move some code around to get rid of extra source files

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@190410 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
544bdfb538d082109194952ce66907b917eb8d51 28-Aug-2013 Alexey Samsonov <samsonov@google.com> Generate list of symbols exported from sanitizer runtimes only on 64-bit Unix

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@189454 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
e5fa243b20bf5e6a097bc58cbedfe6bed8a9b7d1 27-Aug-2013 Alexey Samsonov <samsonov@google.com> Properly generate lists of exported symbols for sanitizer runtimes

This change adds a Python script that is invoked for
the just-built sanitizer runtime to generate the list of exported symbols
passed to the linker. By default, it contains interceptors and sanitizer
interface functions, but can be extended with tool-specific lists.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@189356 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
bsan.syms
bsan.syms.extra
fa484bac3e2d6a5a4bb83dd522a63fd0d70fc2bb 13-Aug-2013 Rui Ueyama <ruiu@google.com> Add "CHECK-" prefix to un-break buildbot failure.

After r188221, the prefix given by --check-prefix must match with the label
as a whole. Substring is not considered to be a correct label anymore.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@188227 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/add-overflow.cpp
it_tests/Integer/shift.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Integer/uadd-overflow.cpp
it_tests/Integer/uincdec-overflow.cpp
it_tests/Integer/usub-overflow.cpp
a1b15b4af39b843ebb8545d295aa872829eb8187 10-Aug-2013 Daniel Dunbar <daniel@zuster.org> [tests] Update to use lit_config and lit package, as appropriate.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@188116 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/lit.cfg
it_tests/lit.site.cfg.in
8c6046b9a8c384b630ae5c1376ee8c0cb1abe406 27-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com> disable pipefail for ubsan.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@187273 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/lit.cfg
28f2f82b56bf498dd3e8ab2ca3afaf907a90de25 18-Jul-2013 Hans Wennborg <hans@hanshq.net> Fix another instance of -ccc-cxx vs. --driver-mode=g++


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@186609 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/vptr.cpp
6efa4d6cf9bb214a5e8ddbb224a69b38c4ae6de6 07-Jun-2013 Alexey Samsonov <samsonov@google.com> [ASan] create separate configs for running ASan lit tests in both 32- and 64-bit mode. Clean up RUN-lines in tests.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@183498 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/lit.cfg
ad785cb2d7f2ab80d2f6bfd7f05d4898807592ad 06-Jun-2013 Alexey Samsonov <samsonov@google.com> Remove a bunch of copy-paste: use common config for sanitizer lit/unit tests

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@183407 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/lit.cfg
it_tests/lit.site.cfg.in
57434a3174cfd9c4c5f304ea412492e4935cc18d 27-May-2013 Alexey Samsonov <samsonov@google.com> Improve support for compiler-rt tests in CMake build.

Now compiler-rt tests run correctly if compiler-rt is checked out into
arbitrary directory (not necessarily projects/compiler-rt).
Patch by Greg Fitzgerald!


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@182726 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/lit.cfg
it_tests/lit.site.cfg.in
2a529adba0707d9b5977d47e884aef6b0be8c94f 11-Apr-2013 Alexey Samsonov <samsonov@google.com> Explicitly list all sanitizer headers in CMake build rules. Make sure sanitizer lit_tests depend on fresh headers.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@179293 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/CMakeLists.txt
7ed46ff7af911da0dd2067734d1408c6986c6657 05-Apr-2013 Alexey Samsonov <samsonov@google.com> [Sanitizer] Use a common mutex to prevent mixing reports from different sanitizers. This fixes PR15516

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@178853 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
c446611d505593bb8e79ea98df87479e24cce68b 28-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> compiler-rt part of r178194. Remove ubsan test for diagnostic on inf/nan conversion between floating-point types.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@178195 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
a06fe9183fbffb78798a444da9bc3040fdd444aa 23-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> Build and install .syms files alongside sanitizer runtimes. These are used to
specify which symbols are exported to DSOs when the sanitizer is statically
linked into a binary.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177784 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
bsan.syms
ec7962d874159f02ad9b1657b627ceb53fea55ab 22-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Pass floating-point arguments to the runtime by value if they fit the
value argument.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177689 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.cc
bsan_value.h
f4322698581422a84c4cf300ad12de9cecd0673d 21-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> Per discussion on cxx-abi-dev, switch from comparing type_info objects to
comparing type_info names, since the latter have better uniqueness guarantees
in practice.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177618 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_type_hash.cc
3e587a4f631c1b7338d4f2a29df74b704b8bb1ca 21-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> Split ubsan runtime into three pieces (compiler-rt part):
* libclang_rt-san-* is sanitizer_common, and is linked in only if no other
sanitizer runtime is present.
* libclang_rt-ubsan-* is the piece of the runtime which doesn't depend on
a C++ ABI library, and is always linked in.
* libclang_rt-ubsan_cxx-* is the piece of the runtime which depends on a
C++ ABI library, and is only linked in when linking a C++ binary.

The Darwin ubsan runtime is unchanged.

For more details, see Clang change r177605.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177606 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
akefile.mk
e20fa5c8c1788274da187ab1dfb8f110376d037d 19-Mar-2013 Richard Smith <richard-llvm@metafoo.co.uk> Update ubsan test for clang change r177362.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@177363 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
8f72f7cae84494d9bd0676b4a499e0f895460744 27-Feb-2013 Alexey Samsonov <samsonov@google.com> [UBSan] Use common report decorator to print colorful diagnostics in UBSan, and be more consistent w/ Printf/RawWrite

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@176182 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
a0b1e21d72429c3672115b3ddc85240e3b7ac88b 23-Feb-2013 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Runtime handlers for array indexing checks.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@175948 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Misc/bounds.cpp
bsan_handlers.cc
bsan_handlers.h
45a8124a70fa720756c4c40d741b588172879bb7 13-Feb-2013 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Add checking for invalid downcasts. Per [expr.static.cast]p2 and p11,
base-to-derived casts have undefined behavior if the object is not actually an
instance of the derived type. Runtime library part.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@175079 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/vptr.cpp
bsan_handlers.cc
bsan_handlers_cxx.cc
c242446f7a7c6a0c1f1bf9ad403d6dac6f215f1c 12-Feb-2013 Richard Smith <richard-llvm@metafoo.co.uk> Highlight caret in bold green, to match Clang diagnostics.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@175013 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
2aad7c137771f6f7a734390e09c94a13120d054a 21-Jan-2013 Alexey Samsonov <samsonov@google.com> CMake: add functions creating universal runtime libraries for several architectures on OS X and use them in ASan and UBSan build rules

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@173011 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
43b4b9c18a7a588a60b9d976391ad8e2f5f9a309 18-Jan-2013 Alexey Samsonov <samsonov@google.com> CMake: Generalize build rules for different arches for sanitizer_common, asan, ubsan

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172829 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
2f3aef010fdeadfe7ec995dc534544acb5f357fb 18-Jan-2013 Alexey Samsonov <samsonov@google.com> CMake variables renaming: X86_64->x86_64 I386->i386

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172812 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
18af39e73d651f1903f2d46ac51b3842b378763f 17-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Add SANITIZER_INTERFACE_ATTRIBUTE to __ubsan_vptr_type_cache

Missed this one previously.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172730 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_type_hash.h
2173dc70641466e166b5f9485bdb3a26eaa2ba1f 14-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Use __sanitizer::atomic_exchange(), prefer shared impl.

Specify weaker memory order in case we optimize for it in the future,
presently still doing same __sync_lock_test_and_set() as before.

Change suggested by Alexey Samsonov, thanks!

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172429 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.h
c193953bf3993760a0be8ae20cf716795d2102cd 10-Jan-2013 Richard Smith <richard-llvm@metafoo.co.uk> UBSan: use %p not 0x%zx when printing pointers.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172129 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
a44110995241d30a886d711cbc33f65269b170ea 10-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Move attribute specifier to fix build with gcc.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172078 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_handlers.h
bsan_handlers_cxx.h
90ad168560fa07fcc21c88d5710a05f851ecafcf 10-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Give entry methods default (not hidden) visibility.

Fixes using ubsan on shared libraries in linux, for example.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@172041 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_handlers.h
bsan_handlers_cxx.h
a6a69d6bfc868d85cdf9e81171071f9076fa2499 09-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Drop use of __atomic_exchange_n for now to fix build for some.

Need a more reliable way to check for support of this intrinsic.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171955 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.h
2af552f98f980178db37eed28a609b6bf55f6df8 09-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Add deduplication functionality, always enabled.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171948 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Misc/deduplication.cpp
bsan_handlers.cc
bsan_handlers_cxx.cc
bsan_value.h
01247b76902f2329f6edf4b9b8e95fc1be06c400 07-Jan-2013 Will Dietz <wdietz2@illinois.edu> [ubsan] Check for appropriate types on compound assignment overflow diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171802 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/add-overflow.cpp
it_tests/Integer/no-recover.cpp
it_tests/Integer/uadd-overflow.cpp
f359dea95de4a17287d11052e9b552100c152287 31-Dec-2012 Will Dietz <wdietz2@illinois.edu> [ubsan] Don't suggest casting to unsigned for unsigned unary minus overflow.

Fixed version of r171273.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171278 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/negate-overflow.cpp
bsan_handlers.cc
9202515bf430858117d117d98136a865feb1a281 31-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Revert r171273 which doesn't actually compile.

Original commit message:
[ubsan] Don't suggest casting to unsigned for unsigned unary minus overflow.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171277 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/negate-overflow.cpp
bsan_handlers.cc
7ba7f0d7f2df4a55e376b0477fc3268a82588bf3 31-Dec-2012 Will Dietz <wdietz2@illinois.edu> [ubsan] Don't suggest casting to unsigned for unsigned unary minus overflow.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171273 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/negate-overflow.cpp
bsan_handlers.cc
7324b65a1ae320b6f179470ce5bae26d4b14f268 30-Dec-2012 Will Dietz <wdietz2@illinois.edu> [ubsan] Update test now that check recovery is default and has driver flag.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171265 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/no-recover.cpp
d7d7b5f39cf5bbc36403afb0a94d473519c7ab78 27-Dec-2012 Alexey Samsonov <samsonov@google.com> Define COMPILER_RT_CAN_EXECUTE_TESTS variable on platforms where we can produce working binaries and use it in build rules for sanitizers tests

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171160 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/CMakeLists.txt
ab6374326389ff649ad857842b45488721c949db 20-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> Move C++ name demangling support from ubsan into sanitizer_common.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170666 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
d2f08ffcb97726452f4ba11c199a1e06dc2a7e54 18-Dec-2012 Alexey Samsonov <samsonov@google.com> [Sanitizer] Expose StackTrace::GetPreviousInstructionPc() to get PC of call instruction from return address

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170424 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
0ad23f7f860e27b8b9a889be665cfaea830503ce 18-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Demangle class names, and be more informative when a reinterpret_cast
has got us to the wrong offset within an object.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170423 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/vptr.cpp
bsan_diag.cc
bsan_diag.h
bsan_handlers_cxx.cc
bsan_type_hash.cc
bsan_type_hash.h
25ee97fe8ada76755c8bd1087fac9cc3cd03b28c 18-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: When diagnosing something wrong somewhere in memory, emit a note
pointing at the bad location and a snippet of nearby memory values. This is
strictly best-effort; reading these bytes to display the note could lead to a
seg fault, and that's explicitly OK.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170415 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/misaligned.cpp
it_tests/TypeCheck/vptr.cpp
bsan_diag.cc
bsan_diag.h
bsan_handlers.cc
bsan_handlers_cxx.cc
bsan_type_hash.cc
bsan_type_hash.h
5f1164955fb28a9bcb826abc195aa2119feb0f97 18-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: if the frontend didn't provide us with a source location, try to work
one out from the return address. Currently, we can only resolve this address to
a file and line number if we have an external symbolizer.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170407 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Misc/bool.cpp
it_tests/TypeCheck/misaligned.cpp
bsan_diag.cc
bsan_diag.h
bsan_handlers.cc
fe0b77be4057ba90a0321107cc5d0f603f297bfa 18-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> Rein ubsan's vptr sanitizer back a bit. Per core issue 453, binding a reference
to an object outside its lifetime does not have undefined behavior.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170388 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/vptr.cpp
e3eb65257f3c93d180670d880138896ad8713afe 13-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan unit tests for -fsanitize=bool and -fsanitize=enum.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170109 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Misc/bool.cpp
it_tests/Misc/enum.cpp
f2d77d03b75733139c9f0896162bbc7a6fc38385 13-Dec-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Add -fsanitize=bool and -fsanitize=enum, which check for loads of
bit-patterns which are not valid values for enumerated or boolean types.
These checks are the ubsan analogue of !range metadata.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@170107 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_handlers.cc
bsan_handlers.h
a82a5d360b19080f2b1beae374c12d4f26146450 02-Dec-2012 Will Dietz <wdietz2@illinois.edu> [ubsan] Refactor handlers to have separate entry points for aborting.

If user specifies aborting after a recoverable failed check is
appropriate, frontend should emit call to the _abort variant.

Test this behavior with newly added -fsanitize-recover flag.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@169113 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/no-recover.cpp
bsan_handlers.cc
bsan_handlers.h
bsan_handlers_cxx.cc
bsan_handlers_cxx.h
7cbd7e502e993320a3a1578179d336c268b80604 02-Dec-2012 Will Dietz <wdietz2@illinois.edu> [ubsan] Replace "fatal error" with "runtime error".


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@169112 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
it_tests/Integer/add-overflow.cpp
it_tests/Integer/div-overflow.cpp
it_tests/Integer/div-zero.cpp
it_tests/Integer/incdec-overflow.cpp
it_tests/Integer/mul-overflow.cpp
it_tests/Integer/negate-overflow.cpp
it_tests/Integer/shift.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Integer/uadd-overflow.cpp
it_tests/Integer/uincdec-overflow.cpp
it_tests/Integer/umul-overflow.cpp
it_tests/Integer/usub-overflow.cpp
it_tests/Misc/missing_return.cpp
it_tests/Misc/unreachable.cpp
it_tests/Misc/vla.c
it_tests/TypeCheck/misaligned.cpp
it_tests/TypeCheck/null.cpp
it_tests/TypeCheck/vptr.cpp
bsan_diag.cc
bsan_handlers_cxx.cc
0a7062f2cbb01b348bbc09be21a577957a2c68c2 30-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Disable __int128 tests if the host Clang does not support it. These
tests will still fail if compiler-rt was built with a compiler without __int128
support, but the host compiler has __int128 support.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@168955 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
it_tests/Integer/add-overflow.cpp
it_tests/Integer/div-zero.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Integer/uadd-overflow.cpp
it_tests/Integer/usub-overflow.cpp
e656184a2e20c0293cf838885204216cdf1db168 29-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> ubsan: Don't assume that Clang provides __int128 unless it advertises that it does.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@168857 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.h
80af605afd0e92a2a128c81898f647207f384e08 27-Nov-2012 Will Dietz <wdietz2@illinois.edu> ubsan: Support unsigned overflows, and divide-by-zero int/float split.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@168700 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Integer/div-zero.cpp
it_tests/Integer/uadd-overflow.cpp
it_tests/Integer/uincdec-overflow.cpp
it_tests/Integer/umul-overflow.cpp
it_tests/Integer/usub-overflow.cpp
bsan_handlers.cc
bsan_handlers.h
af5a4c095bcd3664c7549e3a54872255a88eaa4b 16-Nov-2012 Alexey Samsonov <samsonov@google.com> ubsan: fix broken test case by using brand new [[@LINE]] FileCheck feature

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@168170 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/TypeCheck/vptr.cpp
5b16dba10c171bc74a3d55a61b4406377aecbab8 16-Nov-2012 Alexey Samsonov <samsonov@google.com> UBSan: enable CMake build on Darwin. Fix two failing tests and disable the test which produces linker errors on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@168169 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
it_tests/Integer/add-overflow.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/TypeCheck/vptr.cpp
it_tests/lit.cfg
8783d8345782c431f027566cddf8723fb88a40b9 14-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix typo from code review (thanks to Alexey Samsonov). This is also caught by the existing tests when building for i386.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@167890 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
4a4ef702597471bff5e249b8ec9d94d265007895 14-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Support for building the ubsan runtime when using the autoconf build system on
Darwin. Patch by Jean-Daniel Dupas, tweaked by Jonathan Sauer, simplified
somewhat by me.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@167889 91177308-0d34-0410-b5e6-96231b3b80d8
akefile.mk
bsan_value.h
f4932204d7cf89cc2402b1e30fb728cf84ff7b7f 14-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> -fsanitize=undefined: Switch to using sanitizer_common for output. This gets us much closer to not depending on any system headers.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@167888 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
bsan_diag.cc
bsan_handlers.cc
f10a79a21002a38e6ebc4ed01dec31872f39aed6 06-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Update compiler-rt tests to match flag renaming/deprecation in Clang.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@167434 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
it_tests/Integer/add-overflow.cpp
it_tests/Integer/div-overflow.cpp
it_tests/Integer/div-zero.cpp
it_tests/Integer/incdec-overflow.cpp
it_tests/Integer/mul-overflow.cpp
it_tests/Integer/negate-overflow.cpp
it_tests/Integer/shift.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Misc/missing_return.cpp
it_tests/Misc/unreachable.cpp
it_tests/Misc/vla.c
it_tests/TypeCheck/misaligned.cpp
it_tests/TypeCheck/null.cpp
it_tests/TypeCheck/vptr.cpp
2529922d03a76c90a512e0dd8381a42978349b69 29-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> Consistently declare 'extern "C"' variable in namespace __ubsan. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@166966 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_type_hash.cc
26a725f0b2fd30b98adae6353b432d0c955e10bd 29-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> Don't define an extern "C" variable in its first declaration, to appease a
bogus gcc warning. Take this opportunity to move the declaration to the header,
since it's part of the API of this file.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@166965 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_type_hash.cc
bsan_type_hash.h
eda8bd0fc07df35c9ad7de5b698bb717b063e7af 25-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> -fcatch-undefined-behavior checking for appropriate vptr value: library side.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@166660 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
it_tests/TypeCheck/vptr.cpp
bsan_handlers.cc
bsan_handlers_cxx.cc
bsan_handlers_cxx.h
bsan_type_hash.cc
bsan_type_hash.h
0aad69a3918db4a3c251512984b7451e3c63dd53 15-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> Provide a slightly more helpful diagnostic if -fcatch-undefined-behavior finds
a problem with __int128 arithmetic but the runtime was not built with __int128
support.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165913 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.cc
20c2fb3446d3a6d628adc5e177e5ef5c9cfc90c8 15-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> Use a better test for __int128 support, which works on old GCC versions.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165912 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.h
ba3fde65b900ce9d0ecdf034dfe3825eea810434 13-Oct-2012 Chandler Carruth <chandlerc@gmail.com> Fix the bootstrap of CompilerRT with host compilers that don't support
emulating 128-bit arithmetic on 32-bit x86 targets. This should get the
bootstrap back for GCC 4.6 at least.

Suggestions on better ways to do the detection here are welcome...

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165863 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_diag.cc
bsan_value.cc
bsan_value.h
58561700a4abad310911a24a867da49a14fae91e 13-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> -fcatch-undefined-behavior: Runtime library support for trapping conversions to or
from a floating-point type where the source value is not in the range of
representable values of the destination type.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165844 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Float/cast-overflow.cpp
bsan_diag.cc
bsan_diag.h
bsan_handlers.cc
bsan_handlers.h
bsan_value.cc
bsan_value.h
b04caf1385a4279a7b95d41c3ccefc61842c3633 10-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> -fcatch-undefined-behavior: handler for VLA bound which evaluates to a non-positive value.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165582 91177308-0d34-0410-b5e6-96231b3b80d8
it_tests/Misc/vla.c
bsan_handlers.cc
bsan_handlers.h
ed81c21984efb8c1f96c82de1dd5dbcea5d7aa65 10-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> -fcatch-undefined-behavior: store the type name directly at the end of a type descriptor. 5% binary size reduction due to fewer relocations.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165571 91177308-0d34-0410-b5e6-96231b3b80d8
bsan_value.h
6ebe45146a2d93eb010b9bb5ea34cb94c6900f83 09-Oct-2012 Richard Smith <richard-llvm@metafoo.co.uk> Add a runtime diagnostics library for Clang's -fcatch-undefined-behavior.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@165533 91177308-0d34-0410-b5e6-96231b3b80d8
MakeLists.txt
it_tests/CMakeLists.txt
it_tests/Integer/add-overflow.cpp
it_tests/Integer/div-overflow.cpp
it_tests/Integer/div-zero.cpp
it_tests/Integer/incdec-overflow.cpp
it_tests/Integer/mul-overflow.cpp
it_tests/Integer/negate-overflow.cpp
it_tests/Integer/shift.cpp
it_tests/Integer/sub-overflow.cpp
it_tests/Misc/missing_return.cpp
it_tests/Misc/unreachable.cpp
it_tests/TypeCheck/misaligned.cpp
it_tests/TypeCheck/null.cpp
it_tests/lit.cfg
it_tests/lit.site.cfg.in
bsan_diag.cc
bsan_diag.h
bsan_handlers.cc
bsan_handlers.h
bsan_value.cc
bsan_value.h