summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [GCOV] Close file mapping handle on Windows, so flushed gcda files can be ↵Marco Castelluccio2018-11-073-8/+57
| | | | | | removed while the process is in execution llvm-svn: 346300
* [XRay] Use TSC delta encoding for custom/typed eventsDean Michael Berris2018-11-073-69/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change updates the version number for FDR logs to 5, and update the trace processing to support changes in the custom event records. In the runtime, since we're already writing down the record preamble to handle CPU migrations and TSC wraparound, we can use the same TSC delta encoding in the custom event and typed event records that we use in function event records. We do the same change to typed events (which were unsupported before this change in the trace processing) which now show up in the trace. Future changes should increase our testing coverage to make custom and typed events as first class entities in the FDR mode log processing tools. This change is also a good example of how we end up supporting new record types in the FDR mode implementation. This shows the places where new record types are added and supported. Depends on D54139. Reviewers: mboerger Subscribers: hiraditya, arphaman, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D54140 llvm-svn: 346293
* [sanitizer] Only set soft coredump limit.Evgeniy Stepanov2018-11-071-3/+5
| | | | | | | | | | | | Summary: If user wants to raise it back, let them. Reviewers: kcc, vitalybuka Subscribers: llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D54190 llvm-svn: 346284
* [fuzzer] Read files as binaryJonathan Metzman2018-11-062-3/+3
| | | | | | | | | | | | Summary: Read corpus files as binary to avoid automatic conversions Reviewers: Dor1s, morehouse Reviewed By: Dor1s, morehouse Differential Revision: https://reviews.llvm.org/D54180 llvm-svn: 346279
* [sanitizer] Return headed to fix build after r346258Vitaly Buka2018-11-061-0/+1
| | | | llvm-svn: 346270
* [dfsan] Fix build after r346262Benjamin Kramer2018-11-061-1/+1
| | | | | | | | | | | | | | compiler-rt/lib/dfsan/dfsan.cc:426:3: error: call to 'InitializePlatformEarly' is ambiguous InitializePlatformEarly(); ^~~~~~~~~~~~~~~~~~~~~~~ compiler-rt/lib/dfsan/../sanitizer_common/sanitizer_common.h:901:6: note: candidate function void InitializePlatformEarly(); ^ compiler-rt/lib/dfsan/dfsan.cc:391:13: note: candidate function static void InitializePlatformEarly() { ^ llvm-svn: 346264
* [sanitizer] Use "fast mmap" kernel flag for shadow memory on macOS 10.13.4+Kuba Mracek2018-11-068-2/+38
| | | | | | | | This speeds up process startup and teardown and also reduces lock contention when running multiple ASanified/TSanified processes simultaneously. Should greatly improve lit testing time. Differential Revision: https://reviews.llvm.org/D48445 llvm-svn: 346262
* [sanitizer] Fix nolibc unittests broken by r346215Vitaly Buka2018-11-062-30/+36
| | | | | | | | Subscribers: kubamracek, krytarowski, fedor.sergeev, llvm-commits Differential Revision: https://reviews.llvm.org/D54163 llvm-svn: 346258
* [sanitizer] Add char **GetEnviron() on all other platformsVitaly Buka2018-11-066-3/+21
| | | | | | | | Subscribers: kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D54165 llvm-svn: 346257
* Prioritize the constructor call of __local_xray_dyninit()Kamil Rytarowski2018-11-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: For platforms without preinit support (such as NetBSD/amd64) the initialization routine __xray_init() was called in non-deterministic order compared to other constructors. This caused breakage failures as xray routines attempted to execute code with assumption of being initialized, which was no always true. Use GCC/Clang extension to set maximal priority to the constructor calling __xray_init(). This code switches away from C++ lambda form, as it did not allow to specify this compiler extension. Reviewers: dberris, joerg Reviewed By: dberris Subscribers: llvm-commits, mgorny, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D54136 llvm-svn: 346222
* [sanitizer] Use AT_EXECFN in ReExec() if availableBenjamin Kramer2018-11-061-0/+4
| | | | | | | | | | execve("/proc/self/exe") will not work if the binary relies on $EXEC_ORIGIN in an rpath. Query AT_EXECFN instead, which will give the same string that the current binary was exec'd with. Differential Revision: https://reviews.llvm.org/D54113 llvm-svn: 346215
* [XRay] Update XRayRecord to support Custom/Typed EventsDean Michael Berris2018-11-062-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change cuts across LLVM and compiler-rt to add support for rendering custom events in the XRayRecord type, to allow for including user-provided annotations in the output YAML (as raw bytes). This work enables us to add custom event and typed event records into the `llvm::xray::Trace` type for user-provided events. This can then be programmatically handled through the C++ API and can be included in some of the tooling as well. For now we support printing the raw data we encounter in the custom events in the converted output. Future work will allow us to start interpreting these custom and typed events through a yet-to-be-defined API for extending the trace analysis library. Reviewers: mboerger Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D54139 llvm-svn: 346214
* Follow Windows' approach for NetBSD in AlarmCallback()Kamil Rytarowski2018-11-061-1/+2
| | | | | | | NetBSD's current behavior needs to ignore check for InFuzzingThread() in Fuzzer::AlarmCallback(). llvm-svn: 346194
* [Sanitizers] Disable SANITIZER_CAN_FAST_UNWIND on all SPARC targetsRainer Orth2018-11-052-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | While testing my to-be-submitted Solaris sanitizer support on gcc mainline, I ran into an issue on Solaris/SPARC (sparc-sun-solaris2.11). Initially libasan.so failed to link: Undefined first referenced symbol in file __sanitizer::BufferedStackTrace::FastUnwindStack(unsigned long, unsigned long, unsigned long, unsigned long, unsigned int) /var/gcc/gcc-9.0.0-20181024/11.5-gcc-gas/sparc-sun-solaris2.11/./libsanitizer/asan/.libs/libasan.so This happens because SANITIZER_CAN_FAST_UNWIND is enabled on non-Linux SPARC targets (cf. sanitizer_stacktrace.h), but the guard around the SPARCv8-only definition in sanitizer_stacktrace_sparc.cc only works with clang: clang predefines __sparcv8__ on non-Solaris, and __sparcv8 only on Solaris gcc predefines __sparcv8 on Solaris, but __sparc_v8__ on non-Solaris The attached patch allows for all three variants. However, disabling SANITIZER_CAN_FAST_UNWIND on all SPARC targets fixes a couple of testsuite failures in the Solaris asan testsuite, so for now it's better to keep it disabled everywhere. This allowed the libsanitizer build to complete and gave reasonable (though slightly worse than on Solaris/x86) testsuite results. Differential Revision: https://reviews.llvm.org/D54099 llvm-svn: 346155
* [Sanitizers] Solaris largefile fixesRainer Orth2018-11-054-19/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While testing the Solaris libsanitizer port on GCC mainline, I found that I'd messed up the largefile checks in various ways, some of which showed as compile failures (wrong structure sizes and member offsets), others at runtime, some of those only on sparc as a big-endian target. This patch fixes all of them: - OFF_T is now correctly defined for 32-bit largefile and traditional environments, and 64-bit. - The definition of __sanitizer_dirent now checks the correct conditionals. - sanitizer_procmaps_solaris.cc undefines _FILE_OFFSET_BITS: before Solaris 11.4 <procfs.h> doesn't even compile with largefile support enabled, but the use at hand doesn't need it anyway while g++ 9 will define _FILE_OFFSET_BITS=64 out of the box. - With full largefile support enabled, one needs to use e.g. mmap64 instead of mmap; this is hidden behind macros. With this patch I could bootstrap gcc mainline on both sparc-sun-solaris2.11 and i386-pc-solaris2.11. In addition, I've successfully built llvm on i386-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D54101 llvm-svn: 346153
* Fix build on sparc64-linux-gnu.Martin Liska2018-11-051-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D54030 llvm-svn: 346129
* [XRay] Update TSC math to handle wraparoundDean Michael Berris2018-11-054-81/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Prior to this change, we can run into situations where the TSC we're getting when exiting a function is less than the TSC we got when entering it. This would sometimes cause the counter for cumulative call times overflow, which was erroneously also being stored as a signed 64-bit integer. This change addresses both these issues while adding provisions for tracking CPU migrations. We do this because moving from one CPU to another doesn't guarantee that the timestamp counter for some architectures aren't guaranteed to be synchronised. For the moment, we leave the provisions there until we can update the data format to include the counting of CPU migrations we can catch. We update the necessary tests as well, ensuring that our expectations for the cycle accounting to be met in case of counter wraparound. Reviewers: mboerger Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D54088 llvm-svn: 346116
* Disable recursive interception for tzset in MSanKamil Rytarowski2018-11-041-0/+1
| | | | | | | This fixes sanitization of this library call on NetBSD. Extracted as a part of D42050. llvm-svn: 346098
* [compiler-rt][Fuzzer] Fix the fuzzer test buildPetr Hosek2018-11-021-2/+2
| | | | | | | | | This fixes the issue introduced in r345765 which changed the way in which the embedded libc++ is being built but omitted tests. Differential Revision: https://reviews.llvm.org/D54058 llvm-svn: 346052
* Try to unbreak the build of sanitizers on !NetBSDKamil Rytarowski2018-11-021-1/+4
| | | | | | | | Include the build of unpoison_passwd() and unpoison_group() for SANITIZER_INTERCEPT_FGETPWENT_R and SANITIZER_INTERCEPT_FGETGRENT_R. static void unpoison_passwd( llvm-svn: 346042
* Split getpwent and fgetgrent functions in interceptorsKamil Rytarowski2018-11-022-15/+33
| | | | | | | | | | | | | | | | | | | | | | | | Summary: NetBSD does not ship with fgetpwent_r() and fgetgrent_r(). Split their interceptors from getpwent_r() and getgrent_r() and disable for this OS. Installation of supernumerary interceptors causes leaking of errors to dlsym(3)-like operations. No functional change for other OSes. Reviewers: vitalybuka, joerg Reviewed By: vitalybuka Subscribers: srhines, kubamracek, fedor.sergeev, llvm-commits, #sanitizers, mgorny Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D54041 llvm-svn: 346038
* [PowerPC]Disable randomized address space on Linux ppc64leLei Huang2018-11-021-0/+11
| | | | | | | | | | | Recent versions of Ubuntu (17.04 and 18.04) on PowerPC have introduced changes to Address Space Layout Randomization (ASLR) that is causing 500+ sanitizer failures. This patch disables ASLR when running the sanitizers on PowerPC 64bit LE. Differential Revision: https://reviews.llvm.org/D52900 llvm-svn: 346030
* [NFC] Refactor initialisation of Darwin malloc zone fields into separate ↵Dan Liew2018-11-021-1/+5
| | | | | | | | | | | | | | | | | | function called `InitMallocZoneFields()` which is now called from `ReplaceSystemMalloc()`. Summary: The motivation here is to be able support initialisation of the malloc zone on other code paths. rdar://problem/45284065 Reviewers: kubamracek, george.karpenkov Subscribers: llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D54037 llvm-svn: 345983
* [XRay] Update delta computations in runtimeDean Michael Berris2018-11-022-5/+39
| | | | | | | | | | | | | | | | | | Summary: Fix some issues discovered from mostly manual inspection of outputs from the `llvm-xray fdr-dump` tool. It turns out we haven't been writing the deltas properly, and have been writing down zeros for deltas of some records. This change fixes this oversight born by the recent refactoring. Reviewers: mboerger Subscribers: llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D54022 llvm-svn: 345954
* [XRay] Fix TSC and atomic custom/typed event accountingDean Michael Berris2018-11-016-12/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a follow-on change to D53858 which turns out to have had a TSC accounting bug when writing out function exit records in FDR mode. This change adds a number of tests to ensure that: - We are handling the delta between the exit TSC and the last TSC we've seen. - We are writing the custom event and typed event records as a single update to the buffer extents. - We are able to catch boundary conditions when loading FDR logs. We introduce a TSC matcher to the test helpers, which we use in the testing/verification of the TSC accounting change. Reviewers: mboerger Subscribers: mgorny, hiraditya, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53967 llvm-svn: 345905
* [XRay] Add CPU ID in Custom Event FDR RecordsDean Michael Berris2018-11-013-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change cuts across compiler-rt and llvm, to increment the FDR log version number to 4, and include the CPU ID in the custom event records. This is a step towards allowing us to change the `llvm::xray::Trace` object to start representing both custom and typed events in the stream of records. Follow-on changes will allow us to change the kinds of records we're presenting in the stream of traces, to incorporate the data in custom/typed events. A follow-on change will handle the typed event case, where it may not fit within the 15-byte buffer for metadata records. This work is part of the larger effort to enable writing analysis and processing tools using a common in-memory representation of the events found in traces. The work will focus on porting existing tools in LLVM to use the common representation and informing the design of a library/framework for expressing trace event analysis as C++ programs. Reviewers: mboerger, eizan Subscribers: hiraditya, mgrang, llvm-commits Differential Revision: https://reviews.llvm.org/D53920 llvm-svn: 345798
* Compile and test i128 math builtins for Win64Reid Kleckner2018-11-011-1/+10
| | | | | | | | | | | | | | | | | | | | | Summary: Windows has always been LLP64, not LP64, so the macros were incorrect. Check for _WIN64, since AArch64 sets that too. The tests have to be fixed up in two main ways: 1. Use 'ULL' suffixes to avoid sign extension when passing hex literals with the sign bit set to signed 128 arguments. Clang -fms-compatibility makes such hex literals signed, not unsigned. 2. Disable various tests for 80-bit long double interoperation with i128 values. Reviewers: joerg, mstorsjo Subscribers: javed.absar, kristof.beyls, hiraditya, aheejin, llvm-commits Differential Revision: https://reviews.llvm.org/D53918 llvm-svn: 345796
* [compiler-rt][Fuzzer] Use the new C++ ABI namespace CMake supportPetr Hosek2018-10-311-1/+1
| | | | | | | | | libc++ now supports customizing the ABI namespace directly from the CMake build so we no longer need to rely on custom CFLAGS. Differential Revision: https://reviews.llvm.org/D53939 llvm-svn: 345765
* Update ioctl(2) operations for NetBSD 8.99.25Kamil Rytarowski2018-10-313-42/+66
| | | | | | | | | | | | Eliminate dropped operations, add new operations. Update included headers for newer need. Add a fallback definition of nvlist_ref_t, becaue this type is internal to libnpf and the kernel, not exported into public headers. llvm-svn: 345726
* [asan] Remove stale -fno-exceptions flag in sanitizer_common as wellReid Kleckner2018-10-311-5/+0
| | | | llvm-svn: 345685
* [asan] Remove flags for clang-cl before it supported EHReid Kleckner2018-10-311-5/+0
| | | | | | | Also remove -Wno-undefined-inline, which needed to work around PR19898, which was fixed. llvm-svn: 345677
* Disable BufferOverflowAfterManyFrees for NetBSDKamil Rytarowski2018-10-301-0/+2
| | | | | | This test hangs in the i386 mode. llvm-svn: 345666
* [compiler-rt][ubsan] Implicit Conversion Sanitizer - integer sign change - ↵Roman Lebedev2018-10-303-0/+14
| | | | | | | | | | | | | | | | | | | | | | compiler-rt part Summary: This is a compiler-rt part. The clang part is D50250. See [[ https://bugs.llvm.org/show_bug.cgi?id=21530 | PR21530 ]], https://github.com/google/sanitizers/issues/940. Reviewers: vsk, filcab, #sanitizers Reviewed By: filcab, #sanitizers Subscribers: mclow.lists, srhines, kubamracek, dberris, rjmccall, rsmith, llvm-commits, regehr Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D50251 llvm-svn: 345659
* [builtins] Re-enable x86-only long double testsReid Kleckner2018-10-301-0/+12
| | | | | | | | | | | | | | | | | | | Summary: In r81552, the HAS_80_BIT_LONG_DOUBLE macro was added to the unit test only version of int_lib.h. One month later in r85260 the duplicate int_lib.h was removed, but the tests still passed because we don't build with -Werror. This is the minimal change to bring it back, and I decided to put the configuration macro next to our 128-bit integer support macro. Reviewers: joerg, compnerd, mstorsjo Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53838 llvm-svn: 345645
* Handle NetBSD alias for pthread_sigmaskKamil Rytarowski2018-10-302-0/+7
| | | | | | | | | | | | | | | | | | | | | Summary: Add a new helper macro TSAN_INTERCEPTOR_NETBSD_ALIAS_THR2 that handles pthread(3)/libc aliases in scenarios when a name in both libraries differs not just in prefix namespace. Handle TSan pthread_sigmask mangling accordingly into __libc_thr_sigsetmask. Reviewers: vitalybuka, joerg Reviewed By: vitalybuka Subscribers: kubamracek, jfb, llvm-commits, #sanitizers, mgorny Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D53863 llvm-svn: 345627
* Cast the return value of _Unwind_GetIP() to uptrKamil Rytarowski2018-10-301-1/+1
| | | | | | | This is needed for NetBSD to match the expected type in Unwind_GetIP(). llvm-svn: 345620
* Cleanup includes in sanitizer_platform_limits_netbsd.ccKamil Rytarowski2018-10-301-105/+119
| | | | | | | | Sort the headers more correctly according to NetBSD style. Prevent in this code part clang-format, as shuffling the order will cause build failures. llvm-svn: 345586
* Regenerate syscall hooks for NetBSD 8.99.25Kamil Rytarowski2018-10-301-21/+17
| | | | | | | | | | Register new syscall getsockopt2. Drop removed syscalls pmc_get_info and pmc_control. While there address compiler warnings about potentially unused variables. llvm-svn: 345582
* Handle pthread_sigmask in DemangleFunctionName()Kamil Rytarowski2018-10-301-0/+2
| | | | | | Translate __libc_thr_sigsetmask to pthread_sigmask on NetBSD. llvm-svn: 345574
* Handle NetBSD symbol mangling for tzsetKamil Rytarowski2018-10-301-0/+1
| | | | | | | | Native code generated on NetBSD mangles tzet to __tzset50. Handle this accordingly in MSan. llvm-svn: 345571
* Handle NetBSD symbol mangling for nanosleep and vforkKamil Rytarowski2018-10-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | Summary: Native code generated on NetBSD mangles: - vfork into __vfork14 - nanosleep into __nanosleep50 Handle this accordingly in TSan. Reviewers: vitalybuka, dvyukov, joerg Reviewed By: vitalybuka Subscribers: kubamracek, llvm-commits, #sanitizers, mgorny Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D53806 llvm-svn: 345570
* [XRay] Migrate FDR runtime to use refactored controllerDean Michael Berris2018-10-303-650/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change completes the refactoring of the FDR runtime to support the following: - Generational buffer management. - Centralised and well-tested controller implementation. In this change we've had to: - Greatly simplify the code in xray_fdr_logging.cc to only implement the glue code for calling into the controller. - Implement the custom and typed event logging functions in the FDRLogWriter. - Imbue the `XRAY_NEVER_INSTRUMENT` attribute onto all functions in the controller implementation. Reviewers: mboerger, eizan, jfb Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53858 llvm-svn: 345568
* [ubsan-minimal] update comments in CMakeLists.txtVitaly Buka2018-10-301-5/+3
| | | | | | | | | | | | | | | | | Summary: Prepend minimal when UBsan is mentioned and delete a dead comment Patch by Igor Sugak Reviewers: eugenis, pcc Reviewed By: eugenis Subscribers: mgorny, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D53826 llvm-svn: 345557
* [sanitizer] Move interceptor initialization check into real_clock_gettimeVitaly Buka2018-10-302-5/+4
| | | | | | | | | | Reviewers: cryptoad, kubamracek Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53777 llvm-svn: 345556
* [compiler-rt][builtins] Don't #include CoreFoundation in os_version_check.cErik Pilkington2018-10-291-8/+33
| | | | | | | | | | This breaks some configurations, so just forward declare everything that we need. rdar://35943793 Differential revision: https://reviews.llvm.org/D50269 llvm-svn: 345551
* [builtins] Fix -Wunused-local-typedef warning in compile time assertsReid Kleckner2018-10-291-1/+1
| | | | | | | Use the __attribute__ spellings when compiling with clang-cl so that __attribute__((unused)) expands to something. llvm-svn: 345550
* [XRay] Guard call to postCurrentThreadFCT()Dean Michael Berris2018-10-291-5/+16
| | | | | | | | | | | | | | | | | | | | | Summary: Some cases where `postCurrentThreadFCT()` are not guarded by our recursion guard. We've observed that sometimes these can lead to deadlocks when some functions (like memcpy()) gets outlined and the version of memcpy is XRay-instrumented, which can be materialised by the compiler in the implementation of lower-level components used by the profiling runtime. This change ensures that all calls to `postCurrentThreadFCT` are guarded by our thread-recursion guard, to prevent deadlocks. Reviewers: mboerger, eizan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53805 llvm-svn: 345489
* [XRay] Use more portable control blockDean Michael Berris2018-10-293-60/+75
| | | | | | | | | | | | | | | | | | | | Summary: In D53560, we assumed a specific layout for memory without using an explicit structure. This follow-up change uses more portable layout control by using unions in a struct, and consolidating the memory management code in the buffer queue. We also take the opportunity to improve the documentation on the types and operations, along with simplifying some of the logic in the buffer queue implementation. Reviewers: mboerger, eizan Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53802 llvm-svn: 345485
* [XRay] Refcount backing store for buffersDean Michael Berris2018-10-282-8/+67
| | | | | | | | | | | | | | | | | | | | Summary: This change implements the ref-counting for backing stores associated with generational buffer management. We do this as an implementation detail of the buffer queue, instead of exposing this to the interface. This change allows us to keep the buffer queue interface and usage model the same. Depends on D53551. Reviewers: mboerger, eizan Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53560 llvm-svn: 345471
* [XRay] Support generational buffers in FDR controllerDean Michael Berris2018-10-272-41/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is an intermediary step in the full support for generational buffer management in the FDR runtime. This change makes the FDR controller aware of the new generation number in the buffers handed out by the BufferQueue type. In the process of making this change, we've realised that the cleanest way of ensuring that the backing store per generation is live while all the threads that need access to it will need reference counting to tie the backing store to the lifetime of all threads that have a handle on buffers associated with the memory. We also learn that we're missing the edge-case in the function exit handler's implementation where the first record being written into the buffer is a function exit, which is caught/fixed by the test for generational buffer management. We still haven't wired the controller into the FDR mode runtime, which will need the reference counting on the backing store implemented to ensure that we're being conservatively thread-safe with this approach. Depends on D52974. Reviewers: mboerger, eizan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53551 llvm-svn: 345445
OpenPOWER on IntegriCloud