| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: I agree with https://easyaspi314.github.io/gcc-vs-clang.html?fbclid=IwAR1VA0qxiWVUusOQUv5z7JESS7ZpeJy-UqAI5mnJscofGLqXcqeErIUB2gU, current warning message is not very good. We should try to improve it..
Reviewers: rsmith, aaron.ballman, easyaspi314
Reviewed By: aaron.ballman
Subscribers: arphaman, Quuxplusone, mehdi_amini, hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D69762
|
|
|
|
|
|
| |
This reverts commit 4a5aa1a7bf8b1714b817ede8e09cd28c0784228a.
There are some other test failures. Investigate them first.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduced a new bpf specific attribute which can
be added to struct or union definition. For example,
struct s { ... } __attribute__((preserve_access_index));
union u { ... } __attribute__((preserve_access_index));
The goal is to simplify user codes for cases
where preserve access index happens for certain struct/union,
so user does not need to use clang __builtin_preserve_access_index
for every members.
The attribute has no effect if -g is not specified.
When the attribute is specified and -g is specified, any member
access defined by that structure or union, including array subscript
access and inner records, will be preserved through
__builtin_preserve_{array,struct,union}_access_index()
IR intrinsics, which will enable relocation generation
in bpf backend.
The following is an example to illustrate the usage:
-bash-4.4$ cat t.c
#define __reloc__ __attribute__((preserve_access_index))
struct s1 {
int c;
} __reloc__;
struct s2 {
union {
struct s1 b[3];
};
} __reloc__;
struct s3 {
struct s2 a;
} __reloc__;
int test(struct s3 *arg) {
return arg->a.b[2].c;
}
-bash-4.4$ clang -target bpf -g -S -O2 t.c
A relocation with access string "0:0:0:0:2:0" will be generated
representing access offset of arg->a.b[2].c.
forward declaration with attribute is also handled properly such
that the attribute is copied and populated in real record definition.
Differential Revision: https://reviews.llvm.org/D69759
|
|
|
|
|
|
|
| |
This change would have warned about the bug found in D62451.
No unit tests since the exception should never throw.
Differential Revision: https://reviews.llvm.org/D62452
|
|
|
|
|
|
|
|
|
| |
Before when the overflow occured an assertion was triggered. Now check
whether the maximum has been reached and warn properly.
This patch fixes the original submission of PR19607.
Differential Revision: https://reviews.llvm.org/D63975
|
|
|
|
|
|
| |
Patch by Wang Tianqing!
Differential Revision: https://reviews.llvm.org/D69792
|
|
|
|
| |
Missed Stats->EnableStats rename in rG3fb832fe8bdc317687d5a4d2ca20f5f73b089341
|
| |
|
|
|
|
|
|
|
| |
- Fix uninitialized variable warnings.
- Reuse BitstreamEntry iterator to avoid Wshadow warning.
- Match declaration + definition arg names in BitstreamRemarkParser::processCommonMeta
- Make BitstreamRemarkParser(StringRef) constructor explicit
|
| |
|
|
|
|
| |
Rename option 'Stats' to 'EnableStats' and prevent clash with StatisticInfo::Stats member
|
| |
|
| |
|
|
|
|
| |
Avoid conflict with llvm::remarks::Magic global variable.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When bugreporter::trackExpressionValue() is invoked on a DeclRefExpr,
it tries to do most of its computations over the node in which
this DeclRefExpr is computed, rather than on the error node (or whatever node
is stuffed into it). One reason why we can't simply use the error node is
that the binding to that variable might have already disappeared from the state
by the time the bug is found.
In case of the inlined defensive checks visitor, the DeclRefExpr node
is in fact sometimes too *early*: the call in which the inlined defensive check
has happened might have not been entered yet.
Change the visitor to be fine with tracking dead symbols (which it is totally
capable of - the collapse point for the symbol is still well-defined), and fire
it up directly on the error node. Keep using "LVState" to find out which value
should we be tracking, so that there weren't any problems with accidentally
loading an ill-formed value from a dead variable.
Differential Revision: https://reviews.llvm.org/D67932
|
|
|
|
| |
You can't really infer anything from that.
|
|
|
|
|
|
|
|
| |
until we can automatically fall back to p/P if g/G are not supported;
it looks like there is a bug in debugserver's g/G packets taht needs
to be fixed, or debugserver should stop supporting g/G until that bug
is fixed. But we need lldb to be able to fall back to p/P correctly
for that to be a viable workaround.
|
|
|
|
| |
This reverts commit 2bbc4fdd8fa0ed58d610ab6260cb664c7cfef204.
|
|
|
|
|
| |
Checking for the exact triple fails on many bots. Leaving the triple
check blank.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding support for processing the following Decls: NonTypeTemplateParmDecl,
CXXConversionDecl, UnresolvedUsingValueDecl, UsingDecl, UsingShadowDecl,
TypeAliasTemplateDecl, TypeAliasDecl, VarTemplateDecl,
VarTemplateSpecializationDecl, UsingDirectiveDecl, TemplateTemplateParmDecl,
ClassTemplatePartialSpecializationDecl, IndirectFieldDecl.
Also, this allows for processing NamedDecls that don't have an identifier and
skips over VarDecls that are dependent on template types.
Differential Revision: https://reviews.llvm.org/D69995
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: A user can force a function to be inlined by specifying the always_inline attribute. Currently, thinlto implementation is not aware of always_inline functions and does not guarantee import of such functions, which in turn can prevent inlining of such functions.
Patch by Bharathi Seshadri <bseshadr@cisco.com>
Reviewers: tejohnson
Reviewed By: tejohnson
Subscribers: mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith, arphaman, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70014
|
|
|
|
|
|
|
|
|
| |
and that lldb uses the expedited register values in the ? packet
aka stop packet (T11 etc) and does not re-fetch them with the p packet.
This test is currently failing from the "[lldb-server] Add setting to
force 'g' packet use" commit; I'm marking it as @expectedFailureAll
until we can get this fixed.
|
|
|
|
|
| |
These checks fall out naturally from the current implementation without
needing to be explicitly considered anymore.
|
|
|
|
|
|
| |
macros
Patch based on Sourabh Singh's D69839 patch.
|
|
|
|
|
|
|
| |
Also, fix a bug in ranlib where it didn't correctly detect being run
without any argument and would try to operate on the empty string.
Differential Revision: https://reviews.llvm.org/D70021
|
|
|
|
|
|
|
| |
This was arbitrarily appearing in only the last section emitted - which
made tests more sensitive than they needed to be (removing the last
section - like the macinfo section change that's coming after this)
would, surprisingly, move the blank line to the previous section.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This has the nice side-effect of also fixing a crash in Clang.
Starting with DWARF 5 we are emitting ObjC method declarations as
children of their containing entity. This worked for interfaces, but
didn't consider the case of synthessized properties. When a property
of a protocol is synthesized in an interface implementation the
ObjCMethodDecl that was passed to CGF::StartFunction was the property
*declaration* which obviously couldn't have a containing
interface. This patch passes the containing interface all the way
through to CGDebugInfo, so the function declaration can be created
with the correct parent (= the class implementing the protocol).
rdar://problem/53782400
Differential Revision: https://reviews.llvm.org/D66121
|
|
|
|
|
|
| |
apply method
Differential Revision: https://reviews.llvm.org/D69544
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recommit r373168, which was reverted by r373242. This actually exposed a
boringssl bug which has been fixed for more than one month.
For the following two cases, we currently suppress the symbols. This
patch emits them (compatible with GNU as).
* `test2_a = undef`: if `undef` is otherwise unused.
* `.hidden hidden`: if `hidden` is unused. This is the main point of the
patch, because omitting the symbol would cause a linker semantic
difference.
It causes a behavior change that is not compatible with GNU as:
.weakref foo1, bar1
When neither foo1 nor bar1 is used, we now emit bar1, which is arguably
more consistent.
Another change is that we will emit .TOC. for .TOC.@tocbase . For this
directive, suppressing .TOC. can be seen as a size optimization, but we
choose to drop it for simplicity and consistency.
|
|
|
|
| |
Resolves D69981.
|
| |
|
|
|
|
| |
This reverts commit d6be9273c6035c07b25dd1494f76cd61d523b878.
|
|
|
|
| |
This reverts commit cae4a28864f4e8a55920e2b94e2cd43617902dec.
|
| |
|
|
|
|
|
|
|
| |
templates""
This reverts commit 759948467ea3181615d44d80f74ffeb260180fd0.
There were build bot failures in clang-tidy
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(3) (baseline tests)
Summary:
This is baseline tests for D69326
Incorporates a command line flag for the MSP430 and adds a test cases to help showing the effects of applying D69326
More details and motivation for this patch in D69326
Reviewers: spatel, asl, lebedev.ri
Reviewed By: spatel, asl
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69975
|
|
|
|
|
|
|
|
| |
There was CMake code that would attempt to detect Python 3 even if
LLVM was configured with Python 2, but it messed with the environment
for the other LLVM projects. This commit removes this functionality
and just lkeaves a hard error if Python < 3 is detected and
debuginfo-tests are required.
|
|
|
|
| |
rdar://problem/56924558
|
|
|
|
|
| |
Insertion into SeenFileEntries can invalidate iterators, we need to do
another lookup on the re-intern path.
|
|
|
|
| |
Based on a test provided by Ian Levesque <ianlevesque@fb.com>.
|
| |
|
|
|
|
| |
This reverts commit 3182027282c59c51d5080d83365917fccd695854.
|
|
|
|
| |
This reverts commit 9b8413ac6e56e7a6e0ba884773d13bcf9414bd43.
|