| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Based on http://reviews.llvm.org/D4702 by Byoungyoung Lee!
llvm-svn: 214833
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This object is used to encapsulate all actions that need to be
done before/after printing UBSan diagnostics. Currently these
actions are:
* locking a mutex to ensure that UBSan diagnostics from several
threads won't mix with each other and with other sanitizers'
reports
* killing a program once the report is printed (if necessary).
Use this object in all UBSan handlers. Unify the way we implement
fatal and non-fatal handlers by making all the handlers simple
one-liners that redirect __ubsan_handle_foo(_abort)? to
handleFooImpl().
llvm-svn: 214279
|
|
|
|
|
|
|
| |
compile definition UBSAN_DEFAULT_OPTIONS when building the runtime.
This mirrors similar ASan functionality.
llvm-svn: 214259
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 214258
|
|
|
|
|
|
|
|
| |
This will ensure that stack frames in error reports will not
contain internal UBSan failures, and frame #0 will be the
actual place in the program where the error happens.
llvm-svn: 214245
|
|
|
|
|
|
| |
-fno-rtti flag.
llvm-svn: 214232
|
|
|
|
|
|
|
|
| |
We used to initialize symbolizer lazily, but this doesn't work in
various sandboxed environments. Instead, let's be consistent with
the rest of sanitizers.
llvm-svn: 214006
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specifically, use .preinit_array initialization on Linux and dynamic global
initializer on another platforms. Historically UBSan didn't have any
initialization code and its runtime was stateless. This is no longer the
case - UBSan relies on some non-trivial functionality from sanitizer_common
(e.g. online symbolization) and is now configurable by runtime flags.
Additionally, we've dropped support for enabling UBSan only for a few shared
objects, so UBSan is now always linked into the main executable, so now
we can use similar initialization as all the rest sanitizers.
llvm-svn: 213983
|
|
|
|
| |
llvm-svn: 213786
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces the first UBSan-specific runtime flag: print_stacktrace
(off by default). It can be set in UBSAN_OPTIONS to unwind and print call stacks
in addition to diagnostic messages. For now these stacks are printed only
in vptr checker.
This change is based on http://reviews.llvm.org/D4410 by Byoungyoung Lee!
llvm-svn: 213783
|
|
|
|
|
|
|
|
|
|
| |
If UBSan is run in a standalone mode (w/o any other sanitizer), it
still uses functions from sanitizer_common, some of which depend on
the value of runtime flags. Allow to override the default values of these
flags with UBSAN_OPTIONS variable. In particular, UBSAN_OPTIONS=symbolize=0
can be used to turn off online symbolization.
llvm-svn: 213782
|
|
|
|
|
|
| |
latter in UBSan
llvm-svn: 210959
|
|
|
|
| |
llvm-svn: 210950
|
|
|
|
| |
llvm-svn: 209516
|
|
|
|
|
|
|
|
| |
Soon there will be an option to build compiler-rt parts as shared libraries
on Linux. Extracted from http://llvm-reviews.chandlerc.com/D3042
by Yuri Gribov.
llvm-svn: 205183
|
|
|
|
| |
llvm-svn: 202122
|
|
|
|
|
|
| |
'compiler-rt' target encompassing them all.
llvm-svn: 201556
|
|
|
|
| |
llvm-svn: 201401
|
|
|
|
| |
llvm-svn: 201399
|
|
|
|
| |
llvm-svn: 201217
|
|
|
|
|
|
| |
on this platform
llvm-svn: 199979
|
|
|
|
| |
llvm-svn: 197569
|
|
|
|
| |
llvm-svn: 196799
|
|
|
|
| |
llvm-svn: 196612
|
|
|
|
| |
llvm-svn: 195648
|
|
|
|
|
|
| |
UBSan test suite with and without ASan
llvm-svn: 194698
|
|
|
|
| |
llvm-svn: 194687
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
llvm-svn: 193448
|
|
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1339
llvm-svn: 193060
|
|
|
|
| |
llvm-svn: 193059
|
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 192931
|
|
|
|
|
|
| |
across sanitizers
llvm-svn: 191943
|
|
|
|
| |
llvm-svn: 191810
|
|
|
|
| |
llvm-svn: 191807
|
|
|
|
|
|
| |
functions. Move some code around to get rid of extra source files
llvm-svn: 190410
|
|
|
|
| |
llvm-svn: 189454
|
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 189356
|
|
|
|
|
|
|
| |
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.
llvm-svn: 188227
|
|
|
|
| |
llvm-svn: 188116
|
|
|
|
| |
llvm-svn: 187273
|
|
|
|
| |
llvm-svn: 186609
|
|
|
|
|
|
| |
64-bit mode. Clean up RUN-lines in tests.
llvm-svn: 183498
|
|
|
|
| |
llvm-svn: 183407
|
|
|
|
|
|
|
|
| |
Now compiler-rt tests run correctly if compiler-rt is checked out into
arbitrary directory (not necessarily projects/compiler-rt).
Patch by Greg Fitzgerald!
llvm-svn: 182726
|
|
|
|
|
|
| |
sanitizer lit_tests depend on fresh headers.
llvm-svn: 179293
|
|
|
|
|
|
| |
sanitizers. This fixes PR15516
llvm-svn: 178853
|
|
|
|
|
|
| |
conversion between floating-point types.
llvm-svn: 178195
|
|
|
|
|
|
|
| |
specify which symbols are exported to DSOs when the sanitizer is statically
linked into a binary.
llvm-svn: 177784
|
|
|
|
|
|
| |
value argument.
llvm-svn: 177689
|
|
|
|
|
|
|
| |
comparing type_info names, since the latter have better uniqueness guarantees
in practice.
llvm-svn: 177618
|