- Aug 12, 2016
-
-
Chris Bieneman authored
Since we don't actually have the autoconf subdirectories anymore, we don't need this reference here. llvm-svn: 278558
-
Kevin Enderby authored
This contains the two missing checks for LC_SEGMENT load command fields. And checks for the Mach-O sections fields that would make them invalid. With the new checks, some of the existing malformed file checks now trips one of these instead of the issue it was having before so those tests were adjusted. llvm-svn: 278557
-
Mike Aizatsky authored
llvm-svn: 278556
-
George Rimar authored
After latest changes we combine input sections with different attributes into single output section. Problem here is that regular output sections does not support adding mergeable input sections (and vise versa). Patch just temporarily disables merging for now at the same way we do for -O0 for example. This change helps for linking FreeBSD kernel. Differential revision: https://reviews.llvm.org/D23447 llvm-svn: 278555
-
George Rimar authored
After 278461 "Create only one section for a name in LinkerScript." this loop is excessive. Patch also reorders code slightly to use early return. Differential revision: https://reviews.llvm.org/D23442 llvm-svn: 278554
-
Alexander Droste authored
... This check verifies if a buffer passed to an MPI (Message Passing Interface) function is sufficiently dereferenced. Buffers should be passed as a single pointer or array. As MPI function signatures specify void * for their buffer types, insufficiently dereferenced buffers can be passed, like for example as double pointers or multidimensional arrays, without a compiler warning emitted. Instructions on how to apply the check can be found at: https://github.com/0ax1/MPI-Checker/tree/master/examples Reviewers: Haojian Wu Differential revision: https://reviews.llvm.org/D22729 llvm-svn: 278553
-
Todd Fiala authored
Change r278527 was filtering out too many libraries. The Xcode lldb-gtest target depends on linking libgtest*.a, but those were not being included. This caused the lldb-gtest linkage step to fail to find a main entry point that is present in the filtered out libs. This change restores the libgtest* libraries to the link list by whitelisting them in the filter. llvm-svn: 278552
-
Mike Aizatsky authored
Differential Revision: https://reviews.llvm.org/D23338 llvm-svn: 278551
-
George Rimar authored
We found that GNU assembler 2.17.50 [FreeBSD] 2007-07-03 could generate broken objects. STT_SECTION symbols can be associated with SHT_REL[A]/SHT_SYMTAB/SHT_STRTAB sections. This is PR28868, patch fixes handling of such files. Differential revision: https://reviews.llvm.org/D23201 llvm-svn: 278550
-
Artem Belevich authored
This matches the way nvcc encapsulates GPU binaries into host object file. Now cuobjdump can deal with clang-compiled object files. Differential Revision: https://reviews.llvm.org/D23429 llvm-svn: 278549
-
Tim Shen authored
Summary: It triggers exponential behavior when the DAG has many branches. Reviewers: hfinkel, kbarton Subscribers: iteratee, nemanjai, echristo Differential Revision: https://reviews.llvm.org/D23428 llvm-svn: 278548
-
Zachary Turner authored
llvm-svn: 278547
-
Zachary Turner authored
The include order check would get notified of all include directives in a depth-first manner. This created the possibility of an include directive from a header file interfering with the sort order of a set of two distinct blocks from the top level cpp file, if that include directive was on just the right line. With this patch we bucket the include directives by the file in which they appear in and process one bucket at a time, so that directives from different files do not get mixed together into the same list. Reviewed By: alexfh Differential Revision: https://reviews.llvm.org/D23434 llvm-svn: 278546
-
Benjamin Kramer authored
llvm-svn: 278545
-
Dan Liew authored
The original `ExecuteCommand()` called `system()` from the C library. The C library implementation of this on macOS contains a mutex which serializes calls to `system()`. This prevented the `-jobs=` flag from running copies of the fuzzing binary in parallel which is the opposite of what is intended. To fix this on macOS an alternative implementation of `ExecuteCommand()` is provided that can be used concurrently. This is provided in `FuzzerUtilDarwin.cpp` which is guarded to only compile code on Apple platforms. The existing implementation has been moved to a new file `FuzzerUtilLinux.cpp` which is guarded to only compile code on Linux. This commit includes a simple test to check that LibFuzzer is being executed in parallel when requested. Differential Revision: https://reviews.llvm.org/D22742 llvm-svn: 278544
-
Bruno Cardoso Lopes authored
Reapply r278457 with test fixed to not abouse fs case sensitivity. When the VFS uses a YAML file, the real file path for a virtual file is described in the "external-contents" field. Example: ... { 'type': 'file', 'name': 'a.h', 'external-contents': '/a/b/c/a.h' } Currently, when parsing umbrella directories, we use vfs::recursive_directory_iterator to gather the header files to generate the equivalent modules for. If the external contents for a header does not exist, we currently are unable to build a module, since the VFS vfs::recursive_directory_iterator will fail when it finds an entry without a reliable real path. Since the YAML file could be prepared ahead of time and shared among different compiler invocations, an entry might not yet have a reliable path in 'external-contents', breaking the iteration. Give the VFS the capability to skip such entries whenever 'ignore-non-existent-contents' property is set in the YAML file. rdar://problem/27531549 llvm-svn: 278543
-
Duncan P. N. Exon Smith authored
Thanks to Mehdi for noticing. llvm-svn: 278542
-
Teresa Johnson authored
Summary: This changes clang to use the llvm::lto::thinBackend function instead of its own less comprehensive ThinLTO backend implementation. Patch by Peter Collingbourne Reviewers: tejohnson, mehdi_amini Subscribers: cfe-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D21545 llvm-svn: 278541
-
Duncan P. N. Exon Smith authored
The fixup from r278537 was insufficient. Just #ifdef it out for MSVC. llvm-svn: 278539
-
Duncan P. N. Exon Smith authored
The HasGetNext type trait was cluttered with a few things it didn't need. Try to clean it up, hoping to fix windows bots: http://lab.llvm.org:8011/builders/lld-x86_64-win7/builds/38063 I may just have to delete the trait... llvm-svn: 278537
-
David Majnemer authored
llvm-svn: 278536
-
Zachary Turner authored
Currently, if --driver-mode is not passed at all, it will default to GCC style driver. This is never an issue for clang because it manually constructs a --driver-mode option and passes it. However, we should still try to do as good as we can even if no --driver-mode is passed. LibTooling, for example, does not pass a --driver-mode option and while it could, it seems like we should still fallback to the best possible default we can. This is one of two steps necessary to get clang-tidy working on Windows. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D23454 llvm-svn: 278535
-
Alexander Droste authored
llvm-svn: 278534
-
Alexander Droste authored
llvm-svn: 278533
-
Duncan P. N. Exon Smith authored
No one is using the capability to implement next and prev another way (since lld stopped doing it in r278468). Remove the customization point by moving the API from ilist_nextprev_traits<T> to ilist_node_access. The old traits class is still useful/necessary API as a target for friends of node types that inherit privately from ilist_node. Eventually I plan to either remove it entirely or move the template parameters to the methods. (Note: if there's desire to bring back customization of next/prev pointers in the future (e.g., to pack some bits in there), I think a traits class like this is an awkward way to accomplish it. Instead, we should change ilist<T> to be ilist<ilist_node<T>>, and give an extra template parameter to ilist_node.) llvm-svn: 278532
-
Michael Kuperstein authored
llvm-svn: 278531
-
Ivan Krasin authored
Summary: Add a test case for __attribute__((no_sanitize("cfi"))) being effective. Reviewers: kcc Subscribers: dberris Differential Revision: https://reviews.llvm.org/D23425 llvm-svn: 278530
-
Zachary Turner authored
Test frequently times out stalling the test runner. llvm-svn: 278529
-
Pete Cooper authored
This is part of an effort to constify ValueTracking.cpp. This change is to methods which need const Value* instead of Value* to go with the upcoming changes to ValueTracking. llvm-svn: 278528
-
Todd Fiala authored
The Xcode macOS build of LLDB is currently broken after https://reviews.llvm.org/D23232 landed, see http://lab.llvm.org:8080/green/job/lldb_build_test/20014/console, because we’re trying to link against all .a files found in the llvm-build/lib directory. Let’s be more specific in what we link against. This patch applies a regexp to only use “libclang.*”, “libLLVM.*” and not “libclang_rt.*” static archives. Change by Kuba Mracek (formerly Kuba Brecka) See review here: https://reviews.llvm.org/D23444 Reviewers: tfiala, compnerd llvm-svn: 278527
-
Zachary Turner authored
llvm-svn: 278526
-
Duncan P. N. Exon Smith authored
This avoids duplicated code with llvm/ADT/ilist.h. No functionality change. llvm-svn: 278525
-
Greg Clayton authored
Switch over to using socketpair for local debugserver connections as they are twice as fast as TCP sockets (on macOS at least). This change opens a socket pair and passes the second socket pair file descriptor down to the debugserver binary using a new option: "--fd=N" where N is the file descriptor. This file descriptor gets passed via posix_spawn() so that there is no need to do any bind/listen or bind/accept calls and eliminates the hanshake unix socket that is used to pass the result of the actual port that ends up being used so it can save time on launch as well as being faster. This is currently only enabled on __APPLE__ builds. Other OSs should try modifying the #define from ProcessGDBRemote.cpp but the first person will need to port the --fd option over to lldb-server. Any OSs that enable USE_SOCKETPAIR_FOR_LOCAL_CONNECTION in their native builds can use the socket pair stuff. The #define is Apple only right now, but looks like: #if defined (__APPLE__) #define USE_SOCKETPAIR_FOR_LOCAL_CONNECTION 1 #endif <rdar://problem/27814880> llvm-svn: 278524
-
Duncan P. N. Exon Smith authored
Use ilist_half_embedded_sentinel_traits for the list of lld::mach_o::normalized::TrieEdge, rather than duplicating the code. llvm-svn: 278523
-
Dehao Chen authored
Summary: The refined propagation algorithm is more accurate and robust. Reviewers: davidxl, dnovillo Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D23224 llvm-svn: 278522
-
Duncan P. N. Exon Smith authored
Avoid custom code for sentinel traits in SimpleReference (the ilist node for references to a SimpleDefinedAtom), since they'll soon/eventually disappear from ilist entirely. Rather than using a BumpPtrAllocator, this drops the lazy sentinel characteristics and stores the sentinel directly in the ilist. This unconditionally allocates the sentinel. At first glance, this looks like it might increase memory usage slightly, since an unreferenced SimpleDefinedAtom pays for a 6-pointer-sized sentinel even when its list of references is empty. In practice, the sentinel was being lazily allocated at the first call to DefinedAtom::begin/end anyway. I don't expect any real memory effects here. Moreover, this is an intermediate state. The ilist_*sentinel_traits are being phased out. As a preview of the final state: in lieu of a NodeTy sentinel, the ilist will have a single, untemplated list_node_base that has next/prev pointers. This base node will serve both as a sentinel and as a pointer to the head of the list (the same memory layout as ilist_half_embedded_sentinel_traits, but without the UB). llvm-svn: 278521
-
Artur Pilipenko authored
Currently X86ISelLowering has a similar transformation for sexts: sext(add_nsw(x, C)) --> add(sext(x), C_sext) In this change I extend this code to handle zexts as well. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D23359 llvm-svn: 278520
-
Ehsan Amiri authored
Recursive calls to aliasCheck from alias[GEP|Select|PHI] may result in a second call to GetUnderlyingObject for a Value, whose underlying object is already computed. This patch ensures that in this situations, the underlying object is not computed again, and the result of the previous call is resued. https://reviews.llvm.org/D22305 llvm-svn: 278519
-
Artur Pilipenko authored
Teach LVI to gather control dependant constraints from guards. Reviewed By: sanjoy Differential Revision: https://reviews.llvm.org/D23358 llvm-svn: 278518
-
Teresa Johnson authored
Try to appease Windows bots after r278508: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/27250 http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/14776 llvm-svn: 278517
-