- Jul 27, 2020
-
-
Sergej Jaskiewicz authored
Otherwise, if a Lit script contains escaped substitutions (like %%p in this test https://github.com/llvm/llvm-project/blob/master/compiler-rt/test/asan/TestCases/Darwin/asan-symbolize-partial-report-with-module-map.cpp#L10), they are unescaped during recursive application of substitutions, and the results are unexpected. We solve it using the fact that double percent signs are first replaced with #_MARKER_#, and only after all the other substitutions have been applied, #_MARKER_# is replaced with a single percent sign. The only change is that instead of replacing #_MARKER_# at each recursion step, we replace it once after the last recursion step. Differential Revision: https://reviews.llvm.org/D83894
-
Martin Storsjö authored
For a weak symbol func in a comdat, the actual leader symbol ends up named like .weak.func.default*. Likewise, for stdcall on i386, the symbol may be named _func@4, while the section suffix only is "func", which the previous implementation didn't handle. This fixes unwinding through weak functions when using -ffunction-sections in mingw environments. Differential Revision: https://reviews.llvm.org/D84607
-
Luofan Chen authored
Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D84532
-
Anastasia Stulova authored
Added missing address space for the parameter of copy ctor created for templated constructor with an R-value reference. Patch by Ole Strohm (olestrohm)! Tags: #clang Differential Revision: https://reviews.llvm.org/D83665
-
Guillaume Chatelet authored
-
Simon Pilgrim authored
This is currently only supported for VLX targets where the op should be legal.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Remove duplicate PassManager.h include in IRPrintingPasses.cpp
-
Christian Sigg authored
[MLIR] NFC: Rename mcuMemHostRegister* to mgpuMemHostRegister* to make it consistent with the other cuda-runner functions and ROCm. Summary: Rename mcuMemHostRegister* to mgpuMemHostRegister*. Reviewers: herhut Reviewed By: herhut Subscribers: yaxunl, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, Kayjukh, jurahul, msifontes Tags: #mlir Differential Revision: https://reviews.llvm.org/D84583
-
Sergey Dmitriev authored
Summary: Try not to resize vector of call records in a call graph node when replacing call edge. That would prevent invalidation of iterators stored in the CG SCC pass manager's scc_iterator. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D84295
-
Mitch Phillips authored
Fix up a small bug where we used a partially-uninitialized sigaction struct in the optional signal handler. Shouldn't be a user-visible change.
-
Tim Northover authored
Left shifting a negative value is undefined behaviour, so this just moves the negation afterwards to avoid it.
-
Hans Wennborg authored
Otherwise it got defined as e.g. OFF in Features.inc.
-
Roman Lebedev authored
SplitBlockPredecessors() can not split blocks that have such terminators, and in two other places we already ensure that we don't end up calling SplitBlockPredecessors() on such blocks. Do so in one more place. Fixes https://bugs.llvm.org/show_bug.cgi?id=46857
-
Roman Lebedev authored
Much like with function reduction, there may be remaining unhandled uses of function, in particular in blockaddress. And in constants we can't RAUW it with undef, because undef is not a function. Instead, let's try to pretent that in the remaining cases, the new signature didn't change, by bitcasting it. A new (previously crashing) test case added.
-
Roman Lebedev authored
There may be other users of a function other than CallInsts, but what's more important, we can't actually replace function pointer with undef, because for constants, that would not preserve the type and RAUW would assert. In particular, that affects blockaddress, however it proves to be prohibitively complex to come up with a good test involving blockaddress: we'd need to both ensure that the function body survives until this pass, and is not interesting in this pass.
-
Nathan James authored
-
Raphael Isemann authored
Summary: This way we can get rid of this 1024 char buffer workaround. Reviewers: #lldb, labath Reviewed By: labath Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D84528
-
Aleksandr Platonov authored
Summary: Without this patch clangd does not collect references for main-file symbols if there is no public declaration in preamble. Example: `test1.c` ``` void f1() {} ``` `test2.c` ``` extern void f1(); void f2() { f^1(); } ``` `Find all references` does not show definition of f1() in the result, but GTD works OK. Reviewers: sammccall, kadircet Reviewed By: kadircet Subscribers: ilya-golovenko, ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D84513 -
Raphael Isemann authored
Reviewers: #lldb, JDevlieghere Reviewed By: #lldb, JDevlieghere Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D84530
-
Sanjay Patel authored
-
Kirill Bobyrev authored
Summary: Only FuzzyFindRequest is implemented via Marshaller even though other requests also follow a similar pattern. Unify them under the marshalling umbrella and make the server requests even more uniform to complement D84499. Reviewers: kadircet Reviewed By: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits, sammccall Tags: #clang Differential Revision: https://reviews.llvm.org/D84525
-
Hans Wennborg authored
-
Hans Wennborg authored
To fix the build after 37ac559f.
-
Hans Wennborg authored
CLANGD_ENABLE_REMOTE is always defined; to 0 or 1.
-
Tim Northover authored
MachO only has 24-bit addends for most relocations, small enough that it can overflow in semi-reasonable functions and cause insidious bugs if compiled without assertions enabled. Switch it to an actual error instead. The condition isn't quite identical because ld64 treats the addend as a signed number.
-
Nathan James authored
Simplified how `IncludeInserter` is used in Checks by abstracting away the SourceManager and PPCallbacks inside the method `registerPreprocessor`. Changed checks that use `IncludeInserter` to no longer use a `std::unique_ptr`, instead the IncludeInserter is just a member of the class thats initialized with an `IncludeStyle`. Saving an unnecessary allocation. This results in the removal of the field `IncludeSorter::IncludeStyle` from the checks, as its wrapped in the `IncludeInserter`. No longer need to create an instance of the `IncludeInserter` in the registerPPCallbacks, now that method only needs to contain: ``` Inserter.registerPreprocessor(PP); ``` Also added a helper method to `IncludeInserter` called `createMainFileInclusionInsertion`, purely sugar but does better express intentions. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D83680
-
Hans Wennborg authored
-
Hans Wennborg authored
-
Alex Zinenko authored
Introduce support for mutable storage in the StorageUniquer infrastructure. This makes MLIR have key-value storage instead of just uniqued key storage. A storage instance now contains a unique immutable key and a mutable value, both stored in the arena allocator that belongs to the context. This is a preconditio for supporting recursive types that require delayed initialization, in particular LLVM structure types. The functionality is exercised in the test pass with trivial self-recursive type. So far, recursive types can only be printed in parsed in a closed type system. Removing this restriction is left for future work. Differential Revision: https://reviews.llvm.org/D84171
-
Pavel Labath authored
Summary: This effectively reverts r188124, which added code to handle (DW_AT_)declarations of structures with some kinds of children as definitions. The commit message claims this is a workaround for some kind of debug info produced by gcc. However, it does not go into specifics, so it's hard to reproduce or verify that this is indeed still a problem. Having this code is definitely a problem though, because it mistakenly declares incomplete dwarf declarations to be complete. Both clang (with -flimit-debug-info) and gcc (by default) generate DW_AT_declarations of structs with children. This happens when full debug info for a class is not emitted in a given compile unit (e.g. because of vtable homing), but the class has inline methods which are used in the given compile unit. In that case, the compilers emit a DW_AT_declaration of a class, but add a DW_TAG_subprogram child to it to describe the inlined instance of the method. Even though the class tag has some children, it definitely does not contain enough information to construct a full class definition (most notably, it lacks any members). Keeping the class as incomplete allows us to search for a real definition in other modules, helping the -flimit-debug-info flow. And in case the definition is not found we can display a error message saying that, instead of just showing an empty struct. Reviewers: clayborg, aprantl, JDevlieghere, shafik Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D83302
-
Juneyoung Lee authored
-
Juneyoung Lee authored
-
Pavel Labath authored
MSVC finds the APInt construction ambiguous. Use a case to help it choose the right constructor.
-
Kirill Bobyrev authored
Reviewers: hokein Reviewed By: hokein Subscribers: usaxena95, mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D83817
-
Afanasyev Ivan authored
Reviewers: nadav, tyler.nowicki Reviewed By: nadav Differential Revision: https://reviews.llvm.org/D83851
-
Isaac Richter authored
This patch adds support for the LOG2CEIL builtin function in linker scripts: https://sourceware.org/binutils/docs/ld/Builtin-Functions.html#index-LOG2CEIL_0028exp_0029 As documented for LD, and to keep compatibility, LOG2CEIL(0) returns 0 (not -inf). The test vectors are somewhat arbitrary. We check minimum values (0-4); middle values (2^32, and 2^32+1); and the maximum value (2^64-1). The checks for LOG2CEIL explicitly use full 64-bit values (16 hex digits). This is needed to properly verify that -inf and other interesting results aren't returned. (For some reason, all other tests in operators.test use only 14 digits.) Differential revision: https://reviews.llvm.org/D84054
-
Alex Richardson authored
Python 2.7 fails with TypeError: unsupported operand type(s) for +: 'NoneType' and 'str' if you pass None as the prefix argument to NamedTemporaryFile. Reviewed By: ldionne, bjope, #libc Differential Revision: https://reviews.llvm.org/D84595
-
Kirill Bobyrev authored
Summary: When dereferencing Optional's it makes sense to use ASSERT_TRUE for better test failures readability. Switch from EXPECT_TRUE to ASSERT_TRUE where it is appropriate. Reviewers: kadircet Reviewed By: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D84535 Signed-off-by:
Kirill Bobyrev <kbobyrev@google.com>
-