#
2b3d49b6 |
| 14-Aug-2019 |
Jonas Devlieghere <jonas@devlieghere.com> |
[Clang] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement o
[Clang] Migrate llvm::make_unique to std::make_unique
Now that we've moved to C++14, we no longer need the llvm::make_unique implementation from STLExtras.h. This patch is a mechanical replacement of (hopefully) all the llvm::make_unique instances across the monorepo.
Differential revision: https://reviews.llvm.org/D66259
llvm-svn: 368942
show more ...
|
Revision tags: llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init |
|
#
49a3ad21 |
| 16-Jul-2019 |
Rui Ueyama <ruiu@google.com> |
Fix parameter name comments using clang-tidy. NFC.
This patch applies clang-tidy's bugprone-argument-comment tool to LLVM, clang and lld source trees. Here is how I created this patch:
$ git clone
Fix parameter name comments using clang-tidy. NFC.
This patch applies clang-tidy's bugprone-argument-comment tool to LLVM, clang and lld source trees. Here is how I created this patch:
$ git clone https://github.com/llvm/llvm-project.git $ cd llvm-project $ mkdir build $ cd build $ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug \ -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra' \ -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DLLVM_ENABLE_LLD=On \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../llvm $ ninja $ parallel clang-tidy -checks='-*,bugprone-argument-comment' \ -config='{CheckOptions: [{key: StrictMode, value: 1}]}' -fix \ ::: ../llvm/lib/**/*.{cpp,h} ../clang/lib/**/*.{cpp,h} ../lld/**/*.{cpp,h}
llvm-svn: 366177
show more ...
|
Revision tags: llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2 |
|
#
929af673 |
| 17-May-2019 |
Ilya Biryukov <ibiryukov@google.com> |
[Lex] Allow to consume tokens while preprocessing
Summary: By adding a hook to consume all tokens produced by the preprocessor. The intention of this change is to make it possible to consume the exp
[Lex] Allow to consume tokens while preprocessing
Summary: By adding a hook to consume all tokens produced by the preprocessor. The intention of this change is to make it possible to consume the expanded tokens without re-runnig the preprocessor with minimal changes to the preprocessor and minimal performance penalty when preprocessing without recording the tokens.
The added hook is very low-level and reconstructing the expanded token stream requires more work in the client code, the actual algorithm to collect the tokens using this hook can be found in the follow-up change.
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: eraman, nemanjai, kbarton, jsji, riccibruno, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D59885
llvm-svn: 361007
show more ...
|
Revision tags: llvmorg-8.0.1-rc1 |
|
#
5550aa00 |
| 29-Apr-2019 |
Mike Rice <michael.p.rice@intel.com> |
When skipping code at the start of a file during PCH use, Preprocessor::Lex is not used since it consumes all preprocessor directives until it returns a real token. Using the specific Lexer (i.e. Cur
When skipping code at the start of a file during PCH use, Preprocessor::Lex is not used since it consumes all preprocessor directives until it returns a real token. Using the specific Lexer (i.e. CurLexer->Lex) makes it possible to stop skipping after an #include or #pragma hdrstop. Previously the skipping code was only handling CurLexer, now all will be handled correctly.
Fixes: llvm.org/PR41585
Differential Revision: https://reviews.llvm.org/D61217
llvm-svn: 359506
show more ...
|
#
d652bdd0 |
| 14-Apr-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[c++20] Parsing support for module-declarations, import-declarations, and the global and private module fragment.
For now, the private module fragment introducer is ignored, but use of the global mo
[c++20] Parsing support for module-declarations, import-declarations, and the global and private module fragment.
For now, the private module fragment introducer is ignored, but use of the global module fragment introducer should be properly enforced.
llvm-svn: 358353
show more ...
|
#
8af8b861 |
| 11-Apr-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[C++20] Implement context-sensitive header-name lexing and pp-import parsing in the preprocessor.
llvm-svn: 358231
|
#
75f96818 |
| 11-Apr-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove use of lookahead from _Pragma handling and from all other internal lexing steps in the preprocessor.
It is not safe to use the preprocessor's token lookahead except when operating on the fina
Remove use of lookahead from _Pragma handling and from all other internal lexing steps in the preprocessor.
It is not safe to use the preprocessor's token lookahead except when operating on the final sequence of tokens that would be produced by phase 4 of translation. Doing so corrupts the token lookahead cache used by the parser. (See added testcase for an example.) Lookahead should instead be viewed as a layer on top of the normal lexer.
Added assertions to catch any further incorrect uses of lookahead within lexing actions.
llvm-svn: 358230
show more ...
|
#
75e74e07 |
| 31-Mar-2019 |
Fangrui Song <maskray@google.com> |
Range-style std::find{,_if} -> llvm::find{,_if}. NFC
llvm-svn: 357359
|
#
91e150d5 |
| 19-Mar-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Replace tok::angle_string_literal with new tok::header_name.
Use the new kind for both angled header-name tokens and for double-quoted header-name tokens.
This is in preparation for C++20's context
Replace tok::angle_string_literal with new tok::header_name.
Use the new kind for both angled header-name tokens and for double-quoted header-name tokens.
This is in preparation for C++20's context-sensitive header-name token formation rules.
llvm-svn: 356530
show more ...
|
#
b9b05100 |
| 19-Mar-2019 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Factor out repeated code parsing and concatenating header-names from tokens.
We now actually form an angled_string_literal token for a header name by concatenation rather than just working out what
Factor out repeated code parsing and concatenating header-names from tokens.
We now actually form an angled_string_literal token for a header name by concatenation rather than just working out what its contents would be. This substantially simplifies downstream processing and is necessary for C++20 header unit imports.
llvm-svn: 356433
show more ...
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5 |
|
#
8bef5cd4 |
| 09-Mar-2019 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Modules: Rename MemoryBufferCache to InMemoryModuleCache
Change MemoryBufferCache to InMemoryModuleCache, moving it from Basic to Serialization. Another patch will start using it to manage module b
Modules: Rename MemoryBufferCache to InMemoryModuleCache
Change MemoryBufferCache to InMemoryModuleCache, moving it from Basic to Serialization. Another patch will start using it to manage module build more explicitly, but this is split out because it's mostly mechanical.
Because of the move to Serialization we can no longer abuse the Preprocessor to forward it to the ASTReader. Besides the rename and file move, that means Preprocessor::Preprocessor has one fewer parameter and ASTReader::ASTReader has one more.
llvm-svn: 355777
show more ...
|
Revision tags: llvmorg-8.0.0-rc4 |
|
#
524b3c18 |
| 01-Mar-2019 |
Fangrui Song <maskray@google.com> |
Fix file headers. NFC
llvm-svn: 355176
|
Revision tags: llvmorg-8.0.0-rc3 |
|
#
023dd1ee |
| 14-Feb-2019 |
Nico Weber <nicolasweber@gmx.de> |
Print a note to the called macro when diagnosing err_embedded_directive
Fixes PR40713, see there for the motivation for this.
Differential Revision: https://reviews.llvm.org/D58161
llvm-svn: 354009
|
Revision tags: llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2 |
|
#
421380a1 |
| 05-Feb-2019 |
Volodymyr Sapsai <vsapsai@apple.com> |
[Preprocessor] Add a note with framework location for "file not found" error.
When a framework with the same name is available at multiple framework search paths, we use the first matching location.
[Preprocessor] Add a note with framework location for "file not found" error.
When a framework with the same name is available at multiple framework search paths, we use the first matching location. If a framework at this location doesn't have all the headers, it can be confusing for developers because they see only an error `'Foo/Foo.h' file not found`, can find the complete framework with required header, and don't know the incomplete framework was used instead.
Add a note explaining a framework without required header was found. Also mention framework directory path to make it easier to find the incomplete framework.
rdar://problem/39246514
Reviewers: arphaman, erik.pilkington, jkorous
Reviewed By: jkorous
Subscribers: jkorous, dexonsmith, cfe-commits
Differential Revision: https://reviews.llvm.org/D56561
llvm-svn: 353231
show more ...
|
Revision tags: llvmorg-8.0.0-rc1 |
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
#
b23ccecb |
| 10-Dec-2018 |
Raphael Isemann <teemperor@gmail.com> |
Misc typos fixes in ./lib folder
Summary: Found via `codespell -q 3 -I ../clang-whitelist.txt -L uint,importd,crasher,gonna,cant,ue,ons,orign,ned`
Reviewers: teemperor
Reviewed By: teemperor
Subs
Misc typos fixes in ./lib folder
Summary: Found via `codespell -q 3 -I ../clang-whitelist.txt -L uint,importd,crasher,gonna,cant,ue,ons,orign,ned`
Reviewers: teemperor
Reviewed By: teemperor
Subscribers: teemperor, jholewinski, jvesely, nhaehnle, whisperity, jfb, cfe-commits
Differential Revision: https://reviews.llvm.org/D55475
llvm-svn: 348755
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
#
0a6b5b65 |
| 04-Dec-2018 |
Erich Keane <erich.keane@intel.com> |
PTH-- Remove feature entirely-
When debugging a boost build with a modified version of Clang, I discovered that the PTH implementation stores TokenKind in 8 bits. However, we currently have 368 Toke
PTH-- Remove feature entirely-
When debugging a boost build with a modified version of Clang, I discovered that the PTH implementation stores TokenKind in 8 bits. However, we currently have 368 TokenKinds.
The result is that the value gets truncated and the wrong token gets picked up when including PTH files. It seems that this will go wrong every time someone uses a token that uses the 9th bit.
Upon asking on IRC, it was brought up that this was a highly experimental features that was considered a failure. I discovered via googling that BoostBuild (mostly Boost.Math) is the only user of this feature, using the CC1 flag directly. I believe that this can be transferred over to normal PCH with minimal effort: https://github.com/boostorg/build/issues/367
Based on advice on IRC and research showing that this is a nearly completely unused feature, this patch removes it entirely.
Note: I considered leaving the build-flags in place and making them emit an error/warning, however since I've basically identified and warned the only user, it seemed better to just remove them.
Differential Revision: https://reviews.llvm.org/D54547
Change-Id: If32744275ef1f585357bd6c1c813d96973c4d8d9 llvm-svn: 348266
show more ...
|
Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
3d8051ab |
| 18-Sep-2018 |
Sam McCall <sam.mccall@gmail.com> |
[CodeComplete] Add completions for filenames in #include directives.
Summary: The dir component ("somedir" in #include <somedir/fo...>) is considered fixed. We append "foo" to each directory on the
[CodeComplete] Add completions for filenames in #include directives.
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
show more ...
|
Revision tags: llvmorg-7.0.0 |
|
#
58df1aff |
| 11-Sep-2018 |
Mike Rice <michael.p.rice@intel.com> |
[clang-cl, PCH] Support for /Yc and /Yu without filename and #pragma hdrstop
With clang-cl, when the user specifies /Yc or /Yu without a filename the compiler uses a #pragma hdrstop in the main sour
[clang-cl, PCH] Support for /Yc and /Yu without filename and #pragma hdrstop
With clang-cl, when the user specifies /Yc or /Yu without a filename the compiler uses a #pragma hdrstop in the main source file to determine the end of the PCH. If a header is specified with /Yc or /Yu #pragma hdrstop has no effect.
The optional #pragma hdrstop filename argument is not yet supported.
Differential Revision: https://reviews.llvm.org/D51391
llvm-svn: 341963
show more ...
|
Revision tags: llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2 |
|
#
3124ce72 |
| 15-Aug-2018 |
Stephen Kelly <steveire@gmail.com> |
Add a newline to SourceLocation dump output
Summary: Migrate callers to print().
dump() should be useful to downstreams and third parties as a debugging aid. Everyone trips up on this and creates
Add a newline to SourceLocation dump output
Summary: Migrate callers to print().
dump() should be useful to downstreams and third parties as a debugging aid. Everyone trips up on this and creates confusing output.
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D50661
llvm-svn: 339810
show more ...
|
#
9b9c2749 |
| 13-Aug-2018 |
Kadir Cetinkaya <kadircet@google.com> |
[clang] Store code completion token range in preprocessor.
Summary: This change is to support a new fature in clangd, tests will be send toclang-tools-extra with that change.
Unittests are included
[clang] Store code completion token range in preprocessor.
Summary: This change is to support a new fature in clangd, tests will be send toclang-tools-extra with that change.
Unittests are included in: https://reviews.llvm.org/D50449
Reviewers: ilya-biryukov
Reviewed By: ilya-biryukov
Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits
Differential Revision: https://reviews.llvm.org/D50443
llvm-svn: 339540
show more ...
|
Revision tags: llvmorg-7.0.0-rc1 |
|
#
6907ce2f |
| 30-Jul-2018 |
Fangrui Song <maskray@google.com> |
Remove trailing space
sed -Ei 's/[[:space:]]+$//' include/**/*.{def,h,td} lib/**/*.{cpp,h}
llvm-svn: 338291
|
#
76675de1 |
| 05-Jul-2018 |
Erich Keane <erich.keane@intel.com> |
[clang-cl, PCH] Implement support for MS-style PCH through headers
Implement support for MS-style PCH through headers.
This enables support for /Yc and /Yu where the through header is either on the
[clang-cl, PCH] Implement support for MS-style PCH through headers
Implement support for MS-style PCH through headers.
This enables support for /Yc and /Yu where the through header is either on the command line or included in the source. It replaces the current support the requires the header also be specified with /FI.
This change adds a -cc1 option -pch-through-header that is used to either start or stop compilation during PCH create or use.
When creating a PCH, the compilation ends after compilation of the through header.
When using a PCH, tokens are skipped until after the through header is seen.
Patch By: mikerice Differential Revision: https://reviews.llvm.org/D46652
llvm-svn: 336379
show more ...
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2 |
|
#
9fc8faf9 |
| 09-May-2018 |
Adrian Prantl <aprantl@apple.com> |
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. Thi
Remove \brief commands from doxygen comments.
This is similar to the LLVM change https://reviews.llvm.org/D46290.
We've been running doxygen with the autobrief option for a couple of years now. This makes the \brief markers into our comments redundant. Since they are a visual distraction and we don't want to encourage more \brief markers in new code either, this patch removes them all.
Patch produced by
for i in $(git grep -l '\@brief'); do perl -pi -e 's/\@brief //g' $i & done for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done
Differential Revision: https://reviews.llvm.org/D46320
llvm-svn: 331834
show more ...
|
#
b5f8171a |
| 30-Apr-2018 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR37189 Fix incorrect end source location and spelling for a split '>>' token.
When a '>>' token is split into two '>' tokens (in C++11 onwards), or (as an extension) when we do the same for other t
PR37189 Fix incorrect end source location and spelling for a split '>>' token.
When a '>>' token is split into two '>' tokens (in C++11 onwards), or (as an extension) when we do the same for other tokens starting with a '>', we can't just use a location pointing to the first '>' as the location of the split token, because that would result in our miscomputing the length and spelling for the token. As a consequence, for example, a refactoring replacing 'A<X>' with something else would sometimes replace one character too many, and similarly diagnostics highlighting a template-id source range would highlight one character too many.
Fix this by creating an expansion range covering the first character of the '>>' token, whose spelling is '>'. For this to work, we generalize the expansion range of a macro FileID to be either a token range (the common case) or a character range (used in this new case).
llvm-svn: 331155
show more ...
|