| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Do not allow short case labels on a single line if the label is followed by a
left brace.
Fixes PR38926.
llvm-svn: 342708
|
| |
|
|
|
|
|
|
| |
Fixes rdar://43692300
Differential revision: https://reviews.llvm.org/D52253
llvm-svn: 342679
|
| |
|
|
|
|
|
|
| |
Fixes rdar://43760099
Differential revision: https://reviews.llvm.org/D52271
llvm-svn: 342672
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tries to find a suggestion by removing leading or trailing non-alphanumeric characters and checking if a matching file exists, then it reports an error like:
include-likely-typo.c:3:10: error: '<empty_file_to_include.h>' file not found, did you mean 'empty_file_to_include.h'?
^~~~~~~~~~~~~~~~~~~~~~~~~~~
"empty_file_to_include.h"
1 error generated.
However, if a hint is not found, the error message will show only the trimmed name we use to look for a hint, so:
will result in:
include-leading-nonalpha-no-suggest.c:3:10: fatal error: 'non_existing_file_to_include.h' file not found
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
where the name reported after "fatal error:" doesn't match what the user wrote.
Patch by Jorge Gorbe!
Differential Revision: https://reviews.llvm.org/D52280
This change reports the original file name instead of the trimmed one when a suggestion is not found.
llvm-svn: 342667
|
| |
|
|
| |
llvm-svn: 342666
|
| |
|
|
|
|
| |
Added support for map(s, s.ptr[0:1]) kind of mapping.
llvm-svn: 342648
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a warning if a parameter with a named address space is passed
to a to_addr builtin.
For example:
int i;
to_private(&i); // generate warning as conversion from private to private is redundant.
Patch by Alistair Davies.
Differential Revision: https://reviews.llvm.org/D51411
llvm-svn: 342638
|
| |
|
|
|
|
|
|
|
|
|
|
| |
unsigned long long builtin_unpack_vector_int128 (vector int128_t, int);
vector int128_t builtin_pack_vector_int128 (unsigned long long, unsigned long long);
Builtins should behave the same way as in GCC.
Patch By: wuzish (Zixuan Wu)
Differential Revision: https://reviews.llvm.org/D52074
llvm-svn: 342614
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
When thread safety annotations are used without capability arguments,
they are assumed to apply to `this` instead. So we warn when either
`this` doesn't exist, or the class is not a capability type.
This is based on earlier work by Josh Gao that was committed in r310403,
but reverted in r310698 because it didn't properly work in template
classes. See also D36237.
The solution is not to go via the QualType of `this`, which is then a
template type, hence the attributes are not known because it could be
specialized. Instead we look directly at the class in which we are
contained.
Additionally I grouped two of the warnings together. There are two
issues here: the existence of `this`, which requires us to be a
non-static member function, and the appropriate annotation on the class
we are contained in. So we don't distinguish between not being in a
class and being static, because in both cases we don't have `this`.
Fixes PR38399.
Reviewers: aaron.ballman, delesley, jmgao, rtrieu
Reviewed By: delesley
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D51901
llvm-svn: 342605
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This imitates the code for MemberExpr.
Fixes PR38896.
Reviewers: aaron.ballman, delesley, lukasza, rjmccall
Reviewed By: delesley
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D52200
llvm-svn: 342600
|
| |
|
|
|
|
|
|
|
| |
In the case that `win_t` is an `unsigned short` (e.g. on Windows), we would
previously incorrectly diagnose the conversion because we would immediately
promote the argument type from `wint_t` (aka `unsigned short`) to `int` before
checking if the type matched. This should repair the Windows hosted bots.
llvm-svn: 342565
|
| |
|
|
|
|
| |
ExprMutationAnalyzer.
llvm-svn: 342562
|
| |
|
|
|
|
|
|
|
| |
Windows uses `unsigned short` for `wint_t`. Correct the type definition as
vended by the compiler. This type is defined in corecrt.h and is
unconditionally typedef'ed. cl does not have an equivalent to `__WINT_TYPE__`
which is why this was never detected.
llvm-svn: 342557
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D52079
llvm-svn: 342528
|
| |
|
|
|
|
|
|
| |
For function pointers, the FunctionDecl of the callee is unknown, so
getDirectCallee will return nullptr. We have to catch that case to avoid
crashing. We assume there is no attribute then.
llvm-svn: 342519
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a preprocessor callback for the `__has_include` and
`__has_include_next` directives.
Successful checking for the presence of a header should add it to the list of
header dependencies so this overrides the callback in the dependency scanner.
Patch by Pete Cooper with some additions by me.
rdar://problem/39545636
Differential Revision: https://reviews.llvm.org/D30882
llvm-svn: 342517
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This special case was added in r264841, but the code breaks our
invariants by calling EmitTopLevelDecl without first creating a
HandlingTopLevelDeclRAII scope.
This fixes the PCH crash in https://crbug.com/884427. I was never able
to make a satisfactory reduction, unfortunately. I'm not very worried
about this regressing since this change makes the code simpler while
passing the existing test that shows we do emit dllexported friend
function definitions. Now we just defer their emission until the tag is
fully complete, which is generally good.
llvm-svn: 342516
|
| |
|
|
|
|
|
| |
Create and store a reference to the current toolchain rather than calling
`getToolChain` throughout the function. NFC.
llvm-svn: 342515
|
| |
|
|
|
|
|
|
| |
Move the floating point argument handling into the RenderFloatingPointOptions
helper. This relocation just puts the floating point related options into a
single location.
llvm-svn: 342512
|
| |
|
|
| |
llvm-svn: 342510
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
As part of r342165, I rewrote the logic to check whether
-fno-omit-frame-pointer was passed after a -fomit-frame-pointer
argument. This CL switches that logic to use the consolidated
shouldUseFramePointer() function. This fixes a potential issue where -pg
gets used with -fomit-frame-pointer on a platform that must always retain
frame pointers.
Reviewers: dblaikie
Reviewed By: dblaikie
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D52191
llvm-svn: 342501
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Allows module map writers to add build requirements based on
platform/os. This helps when target features and language dialects
aren't enough to conditionalize building a module, among other things,
it allow module maps for different platforms to live in the same file.
rdar://problem/43909745
Differential Revision: https://reviews.llvm.org/D51910
llvm-svn: 342499
|
| |
|
|
|
|
|
| |
* Create a USR for the occurrences of the 'module' symbol kind
* Record module references for each identifier in an import declaration
llvm-svn: 342484
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Also added unit tests for the index library; lit+c-index-test is painful...
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D52098
llvm-svn: 342451
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The dir component ("somedir" in #include <somedir/fo...>) is considered fixed.
We append "foo" to each directory on the include path, and then list its files.
Completions are of the forms:
#include <somedir/fo^
foo.h>
fox/
The filter is set to the filename part ("fo"), so fuzzy matching can be
applied to the filename only.
No fancy scoring/priorities are set, and no information is added to
CodeCompleteResult to make smart scoring possible. Could be in future.
Reviewers: ilya-biryukov
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D52076
llvm-svn: 342449
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a number of issues:
- Global variables are not used for communication
- Trait should be defined on a graph, not on a node
- Defining the trait on a graph allows us to use a correct allocator,
no longer crashing while printing trimmed graphs
Differential Revision: https://reviews.llvm.org/D52183
llvm-svn: 342413
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This is a follow up of D52008 and should make the analyzer being able to handle perfect forwardings in real world cases where forwardings are done through multiple layers of function calls with `std::forward`.
Fixes PR38891.
Reviewers: lebedev.ri, JonasToth, george.karpenkov
Subscribers: xazax.hun, szepet, a.sidorin, mikhail.ramalho, Szelethus, cfe-commits
Differential Revision: https://reviews.llvm.org/D52120
llvm-svn: 342409
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The init expression of a VarDecl is overwritten in the "To" context if we
import a VarDecl without an init expression (and with a definition). Please
refer to the added tests, especially InitAndDefinitionAreInDifferentTUs. This
patch fixes the malfunction by importing the whole Decl chain similarly as we
did that in case of FunctionDecls. We handle the init expression similarly to
a definition, alas only one init expression will be in the merged ast.
Reviewers: a_sidorin, xazax.hun, r.stahl, a.sidorin
Subscribers: rnkovacs, dkrupp, cfe-commits
Differential Revision: https://reviews.llvm.org/D51597
llvm-svn: 342384
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Patch by Egor Churaev
Reviewers: Anastasia, yaxunl
Reviewed By: Anastasia
Subscribers: asavonic, bader, cfe-commits
Differential Revision: https://reviews.llvm.org/D51722
llvm-svn: 342370
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Merged the recently added `err_attribute_argument_negative` diagnostic
with existing `err_attribute_requires_positive_integer` diagnostic:
the former allows only strictly positive integer, while the latter
also allows zero.
Reviewers: aaron.ballman
Reviewed By: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D51853
llvm-svn: 342367
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
before patch:
> echo "test() {([]() -> {int b = 32;return 3;}).as("");});" | clang-format -style=Google
```
test() {
([]() -> {
int b = 32;
return 3;
})
.as();
});
```
after patch:
> echo "test() {([]() -> {int b = 32;return 3;}).as("");});" | clang-format -style=Google
```
test() {
([]() -> {
int b = 32;
return 3;
}).as();
});
```
Patch by Anders Karlsson (ank)!
Reviewers: klimek
Reviewed By: klimek
Subscribers: danilaml, acoomans, klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D45719
llvm-svn: 342363
|
| |
|
|
|
|
| |
ExprMutationAnalyzer
llvm-svn: 342353
|
| |
|
|
|
|
| |
especially considering future changes.
llvm-svn: 342340
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move declarations for OMPClauseReader, OMPClauseWriter to ASTReader.h
and ASTWriter.h and move implementation to ASTReader.cpp and
ASTWriter.cpp. This change helps generalize the serialization of
OpenMP clauses and will be used in the future implementation of new
OpenMP directives (e.g. requires).
Patch by Patrick Lyster
Differential Revision: https://reviews.llvm.org/D52097
llvm-svn: 342322
|
| |
|
|
|
|
|
|
| |
skip pointers whenever redundant, use unique prefixes.
Differential Revision: https://reviews.llvm.org/D52114
llvm-svn: 342316
|
| |
|
|
|
|
|
|
|
| |
The generated identifier is stable across multiple runs,
and can be a great visualization or debugging aide.
Differential Revision: https://reviews.llvm.org/D52113
llvm-svn: 342315
|
| |
|
|
|
|
|
|
|
|
| |
Those are not created in the allocator.
Since they are created fairly rarely, a counter overhead should not
affect the memory consumption.
Differential Revision: https://reviews.llvm.org/D51827
llvm-svn: 342314
|
| |
|
|
|
|
|
|
| |
store
Differential Revision: https://reviews.llvm.org/D51826
llvm-svn: 342313
|
| |
|
|
|
|
|
|
|
|
| |
exploded graph
Prevents bad centering.
Differential Revision: https://reviews.llvm.org/D51825
llvm-svn: 342312
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D51824
llvm-svn: 342311
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D51823
llvm-svn: 342310
|
| |
|
|
|
|
|
|
|
| |
The generated identifiers are stable across multiple runs, and can be a
great debug or visualization aid.
Differential Revision: https://reviews.llvm.org/D51822
llvm-svn: 342309
|
| |
|
|
|
|
|
|
|
|
| |
predecessors/successors
Still generate a node, but leave the redundant field empty.
Differential Revision: https://reviews.llvm.org/D51821
llvm-svn: 342308
|
| |
|
|
|
|
| |
header module.
llvm-svn: 342307
|
| |
|
|
| |
llvm-svn: 342306
|
| |
|
|
|
|
| |
action.
llvm-svn: 342305
|
| |
|
|
|
|
| |
headaer files.
llvm-svn: 342304
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We used to treat an `Expr` mutated whenever it's passed as non-const
reference argument to a function. This results in false positives in
cases like this:
```
int x;
std::vector<int> v;
v.emplace_back(x); // `x` is passed as non-const reference to `emplace_back`
```
In theory the false positives can be suppressed with
`v.emplace_back(std::as_const(x))` but that's considered overly verbose,
inconsistent with existing code and spammy as diags.
This diff handles such cases by following into the function definition
and see whether the argument is mutated inside.
Reviewers: lebedev.ri, JonasToth, george.karpenkov
Subscribers: xazax.hun, szepet, a.sidorin, mikhail.ramalho, Szelethus, cfe-commits
Differential Revision: https://reviews.llvm.org/D52008
llvm-svn: 342271
|
| |
|
|
|
|
|
|
|
|
| |
Summary: It's not used anywhere for years. The last usage is removed in https://reviews.llvm.org/rL198476 in 2014.
Subscribers: mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D51946
llvm-svn: 342246
|
| |
|
|
|
|
|
|
|
|
|
|
| |
explicit instantiation and PCH
The code in ASTContext::DeclMustBeEmitted was supposed to handle this,
but didn't take into account that synthesized members such as operator=
might not get marked as template specializations, because they're
synthesized on the instantiation directly when handling the class-level
dllexport attribute.
llvm-svn: 342240
|