Skip to content

Trojan #248

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 346 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
346 commits
Select commit Hold shift + click to select a range
4d342b7
Revert "[RISCV] Support ABI checking with per function target-features"
zakk0610 Jan 17, 2020
72882ca
[RISCV] Support ABI checking with per function target-features
zakk0610 Nov 29, 2019
c23212a
[IR] Keep a double break between functions when printing a module
rnk Jan 27, 2020
87c7863
Reland "[StackColoring] Remap PseudoSourceValue frame indices via Mac…
MaskRay Jan 27, 2020
6472fec
[clangd][Hover] Handle uninstantiated templates
kadircet Jan 24, 2020
54b022d
[lldb] Fix nondeterminism in TestCppBitfields
labath Jan 24, 2020
684c216
[ELF][PPC32] Support --emit-relocs link of R_PPC_PLTREL24
MaskRay Jan 28, 2020
9a17454
[clangd][Hover] Make tests hermetic by setting target triplet
kadircet Jan 29, 2020
9676581
Work around PR44697 in CrashRecoveryContext
zmodem Jan 29, 2020
5777899
[CUDA] Assume the latest known CUDA version if we've found an unknown…
Artem-B Jan 22, 2020
81d73c6
[LLD][ELF][ARM] Do not insert interworking thunks for non STT_FUNC sy…
smithp35 Jan 23, 2020
425198b
[GlobalMerge] Preserve symbol visibility when merging globals
mspang Jan 28, 2020
52c1d20
[PassManagerBuilder] Remove global extension when a plugin is unloaded
EliaGeretto Jan 29, 2020
f7f0fd4
[ORC] Add weak symbol support to defineMaterializing, fix for PR40074.
lhames Jan 17, 2020
32723d5
[ORC] Add support for emulated TLS to ORCv2.
lhames Jan 22, 2020
32056b4
[ORC] Fix a missing move in ce2207abaf9.
lhames Jan 22, 2020
46f6f03
[ORC] Update examples to incorporate changes in ce2207abaf9.
lhames Jan 22, 2020
011adfc
Update clang-interpreter example to incorporate changes in ce2207abaf9.
lhames Jan 22, 2020
92edb29
[ORC] Fix the LLJITWithObjectCache example to address changes in ce22…
lhames Jan 22, 2020
d18ccb8
[WebAssembly] Fix resume-only case in Emscripten EH
aheejin Jan 24, 2020
d275de3
[clan-tidy] Fix false positive in bugprone-infinite-loop
Jan 23, 2020
b0536b5
[LV] Do not try to sink dead instructions.
fhahn Jan 28, 2020
b28b38a
[clangd] Don't mmap source files on all platforms --> don't crash on …
sam-mccall Jan 29, 2020
b516ca0
Revert "Reland: [DWARF] Allow cross-CU references of subprogram defin…
vedantk Jan 25, 2020
e40782f
[mlir][orc] unbreak MLIR ExecutionEngine after ORC changes
ftynse Jan 22, 2020
478ea4b
test-release.sh: Add MLIR to the projects list
zmodem Jan 30, 2020
1f95a77
Drop arm triple from test/CodeGen/AArch64/global-merge-hidden-minsize.ll
zmodem Jan 30, 2020
1a59591
Define _LIBCPP_HAS_TIMESPEC_GET for FreeBSD when appropriate
DimitryAndric Jan 30, 2020
e512347
Generate docs
zmodem Jan 30, 2020
a360935
[Concept] Fix incorrect check for containsUnexpandedParameterPack in CSE
saarraz Jan 30, 2020
6c6ea59
[Concepts] Add check for dependent RC when checking function constraints
saarraz Jan 30, 2020
800395c
[Concepts] Add 'this' context to instantiation of member requires clause
saarraz Jan 30, 2020
0ce7ea7
PR41991: Accept attributes on defaulted and deleted friends.
zygoloid Jan 31, 2020
cc85862
[Concepts] Check function constraints before deducing auto return type
saarraz Jan 31, 2020
904d146
PR44627: Consider reversing == and <=> candidates found by ADL.
zygoloid Jan 31, 2020
3573526
Revert "[libcxx] Force-cache LIBCXX_CXX_ABI_LIBRARY_PATH"
broadwaylamb Jan 31, 2020
3b32963
[Concepts] Correctly form initial parameter mapping for parameter pac…
saarraz Jan 31, 2020
8be1162
[Concepts] Fix isDeclarationSpecifier to detect type-constraints corr…
saarraz Jan 31, 2020
fdedf39
PR44723: Trigger return type deduction for operator<=>s whose return
zygoloid Jan 31, 2020
f85d63a
Fix wrong devirtualization when the final overrider in one base class
zygoloid Feb 1, 2020
e11d70c
Make quick-append.test resilient to running in paths with '1.o' in th…
zmodem Feb 3, 2020
72e9e37
[Sema] Remove a -Wrange warning from -Wall
mordante Feb 1, 2020
dd50560
MSVC Buggy version detection: turn pre-processor error into CMake con…
joker-eph Jan 30, 2020
cbd4815
[AArch64] -fpatchable-function-entry=N,0: place patch label after BTI
MaskRay Jan 30, 2020
674ec1e
[libcxxabi] Insert padding in __cxa_exception struct for compatibility
cachemeifyoucan Jan 30, 2020
2b54b8b
[Concepts] Instantiate invented template type parameter type-constrai…
saarraz Feb 3, 2020
c822edc
Revert "[Concepts] Instantiate invented template type parameter type-…
saarraz Feb 3, 2020
1ac1c4b
[Concepts] Instantiate invented template type parameter type-constrai…
saarraz Feb 3, 2020
4e9209a
[RISCV] Scheduler description for the Rocket core
Hsiangkai Jan 23, 2020
94c79ce
Revert "[AMDGPU] Invert the handling of skip insertion."
nhaehnle Jan 21, 2020
b905b85
[BPF] fix a bug in BPFMISimplifyPatchable pass with -O0
yonghong-song Jan 30, 2020
5cca13d
AMDGPU/R600: Emit rodata in text segment
jvesely Jan 19, 2020
fa51929
R600: Fix failing testcase
arsenm Jan 22, 2020
7ad47b4
[clang-tidy] Fixed crash 44745 in readability-else-after-return
njames93 Feb 2, 2020
4ea9a4a
Declare __builtin_strlen in StringRef.h as constexpr
zmodem Feb 3, 2020
d2a710e
Actually, don't try to use __builtin_strlen in StringRef.h before VS …
zmodem Feb 3, 2020
165a636
[libcxxabi] Fix layout of __cxa_exception for win64
mstorsjo Feb 1, 2020
db51c41
[ELF] Decrease alignment of ThunkSection on 64-bit targets from 8 to 4
MaskRay Jan 16, 2020
852b37f
[LLD][ELF][ARM][AArch64] Only round up ThunkSection Size when large OS.
smithp35 Jan 7, 2020
5f6fec2
AMDGPU: Fix handling of infinite loops in fragment shaders
cwabbott0 Nov 27, 2019
ca6b341
[libcxx] [Windows] Store the lconv struct returned from localeconv in…
mstorsjo Oct 28, 2019
2d9954d
Add -Wrange-loop-analysis changes to ReleaseNotes
mordante Feb 4, 2020
300cbdc
PR44761: Fix fallback to later tiebreakers if two non-template functions
zygoloid Feb 4, 2020
7a94fc0
PR44721: Don't consider overloaded operators for built-in comparisons
zygoloid Jan 31, 2020
8f19f98
[Concepts] Add missing CXXThisScope to function template constraint s…
saarraz Feb 4, 2020
b833e0c
PR44786: Don't assert when profiling <=> expressions.
zygoloid Feb 5, 2020
211aa5b
[mlir] Mark the MLIR tools for installation in CMake
kernhanda Feb 5, 2020
0b8a540
[AArch64][ARM] Always expand ordered vector reductions (PR44600)
nikic Jan 21, 2020
99c6a4e
[ARM] Expand vector reduction intrinsics on soft float
nikic Feb 2, 2020
8195a96
[ARM][VecReduce] Force expand vector_reduce_fmin
davemgreen Feb 4, 2020
b4efc29
Update for Clang 10 release notes in order to have reference to D66404.
abpostelnicu Feb 5, 2020
4c96b36
[X86] -fpatchable-function-entry=N,0: place patch label after ENDBR{3…
MaskRay Jan 31, 2020
fd271fd
Don't warn about missing declarations for partial template specializa…
aaronpuchert Jan 31, 2020
5288d7a
[OpenMP][OMPT] fix reduction test for 32-bit x86
jprotze Feb 4, 2020
424babb
[LLD] Add release notes for MinGW for the 10.x branch
mstorsjo Feb 5, 2020
0f99f67
[docs] Add LLVM/LLDB release notes for the 10.x branch for things I'v…
mstorsjo Feb 5, 2020
7e518f3
[clang] Add release notes for the 10.x branch for things I've done
mstorsjo Feb 5, 2020
d536119
[libcxx] Add release notes for the 10.x branch for things I've done
mstorsjo Feb 5, 2020
c32d809
[TSan] Ensure we can compile the runtime with older SDKs
Feb 5, 2020
d0104a5
Make llvm::crc32() work also for input sizes larger than 32 bits.
zmodem Feb 5, 2020
cbec01f
[clangd] Add workaround for GCC5 host compilers. NFC.
darkbuck Jan 16, 2020
22633f8
[LLDB] Fix compilation with GCC 5
mstorsjo Feb 5, 2020
0242096
Fix x86 32bits MLIR build (NFC)
DimitryAndric Feb 4, 2020
c0c5ab3
[LV] Fix predication for branches with matching true and false succs.
fhahn Jan 23, 2020
96ed02d
[Concepts] Fix incorrect check when instantiating abbreviated templat…
saarraz Feb 6, 2020
ed368ba
StringRef.h: __builtin_strlen seems to exist in VS 2017 MSVC 19.16 or…
zmodem Feb 6, 2020
7996b49
Revert "[ARM] Improve codegen of volatile load/store of i64"
vhscampos Feb 8, 2020
9db3e5d
[InstCombine] Fix infinite loop in min/max load/store bitcast combine…
nikic Feb 8, 2020
d65ef43
[InstCombine] Add test for -expensive-combines option; NFC
nikic Jan 16, 2020
d9b836d
[InstCombine] Support disabling expensive combines in opt
nikic Jan 16, 2020
fc12083
[InstCombine] Fix infinite min/max canonicalization loop (PR44541)
nikic Feb 2, 2020
4ea0b39
PowerPC release notes
zmodem Feb 10, 2020
a124beb
[ARM] Fix non-determenistic behaviour
Feb 6, 2020
e2c0c70
[cmake] Fix clang builds with BUILD_SHARED=ON and CLANG_LINK_CLANG_DY…
tstellar Feb 4, 2020
720870e
[analyzer] Fix a couple of bugs in HTML report generation.
haoNoQ Feb 4, 2020
3f4ba96
[BPF] disable ReduceLoadWidth during SelectionDag phase
yonghong-song Feb 4, 2020
8b8a483
[X86] Use MVT::i8 instead of MVT::i64 for shift amount in BuildSDIVPow2
topperc Feb 6, 2020
84cda4c
[clang-tidy] Fix false positive for cppcoreguidelines-init-variables
njames93 Feb 2, 2020
b73942d
AMDGPU/EG,CM: Implement fsqrt using recip(rsqrt(x)) instead of x * rs…
jvesely Feb 5, 2020
b8fead7
[AArch64] Add option to enable/disable load-store renaming.
fhahn Jan 27, 2020
793d643
[Clang] Remove unused #pragma clang __debug handle_crash
aganea Feb 6, 2020
64515b3
[analyzer] Add 10.0.0 release notes.
zmodem Feb 10, 2020
4759c6e
[Support] When using SEH, create a impl instance for CrashRecoveryCon…
aganea Feb 7, 2020
0e1c734
Re-land "[Clang][Driver] Remove -M group options ..." and "[Clang] Av…
aganea Feb 7, 2020
f23caec
ReleaseNotes / external projects: Zig
zmodem Feb 10, 2020
699e2a6
Prefer __vector over vector keyword for altivec
Feb 6, 2020
4e6ec0f
IR Linking: Support merging Warning+Max module metadata flags
dwblaikie Feb 6, 2020
dbe9c3a
[Support] Don't modify the current EH context during stack unwinding
rnk Jan 31, 2020
aeba7ba
Add SystemZ release notes
uweigand Feb 11, 2020
fd04cb4
[Clang][Driver] After default -fintegrated-cc1, make llvm::report_fat…
aganea Feb 11, 2020
3c94b27
[SystemZ] Bugfix in emitSelect()
JonPsson Feb 10, 2020
d8a6dea
Fix MSVC build with C++ EH enabled
rnk Feb 11, 2020
b33830a
[OpenCL] Restrict addr space conversions in nested pointers
Feb 6, 2020
7a136d2
[clang-tidy] Added check to disable bugprone-infinite-loop on known f…
njames93 Feb 11, 2020
c170172
[DebugInfo] Re-instate LiveDebugVariables scope trimming
jmorse Feb 4, 2020
04d7337
Revert "[DebugInfo][DAG] Distinguish different kinds of location indi…
jmorse Feb 5, 2020
4eb45a0
Revert "[DebugInfo] Remove some users of DBG_VALUEs IsIndirect field"
jmorse Feb 5, 2020
533d98b
[X86] Cast to __v4hi instead of __m64 in the implementation of _mm_ex…
topperc Jan 22, 2020
2804f35
Fix an unused variable warning
zmodem Feb 10, 2020
9fbd4ab
[Concepts] Do not check constraints if not all template arguments hav…
saarraz Feb 12, 2020
6f69240
[Concepts] Add missing TPA commit to requires expression parsing
saarraz Feb 12, 2020
b3cf704
[CodeGen] Fix the computation of the alignment of split stores.
zmodem Feb 12, 2020
808f8a6
Fix type-dependency of bitfields in templates
elizabethandrews Feb 12, 2020
e1b7335
Fix a reentrance bug with deserializing ObjC type parameters.
rjmccall Feb 12, 2020
9c9e46d
[Clang] Limit -fintegrated-cc1 to only one TU
aganea Feb 12, 2020
90c7807
Linker/module-max-warn.ll: Fix test to be compatible with Windows fil…
dwblaikie Feb 8, 2020
da883d2
[clangd] Expose Code Completion score to the client
kirillbobyrev Feb 13, 2020
0cffa93
Fix crash in InfinteLoopCheck
njames93 Feb 13, 2020
4f53867
Drop git version suffix
aaronpuchert Feb 17, 2020
f87a092
Add lowering of STRICT_FSETCC and STRICT_FSETCCS
john-brawn-arm Jan 24, 2020
a97c77a
[FPEnv][AArch64] Add lowering and instruction selection for STRICT_FP…
john-brawn-arm Jan 21, 2020
fca6c5e
[FPEnv][AArch64] Add lowering and instruction selection for strict co…
john-brawn-arm Jan 27, 2020
19f4aa2
[FPEnv][ARM] Add lowering of STRICT_FSETCC and STRICT_FSETCCS
john-brawn-arm Jan 22, 2020
cff417c
[FPEnv][AArch64] Add lowering of f128 STRICT_FSETCC
john-brawn-arm Jan 28, 2020
cbac419
[ARM] Fix infinite loop when lowering STRICT_FP_EXTEND
john-brawn-arm Feb 13, 2020
b5d9a7e
[AArch64][FPenv] Update chain of int to fp conversion
Feb 15, 2020
f636e9f
[FPEnv][ARM] Don't call mutateStrictFPToFP when lowering
john-brawn-arm Feb 17, 2020
8dbe13f
[libcxx] Support Python 3.8 in the test suite
broadwaylamb Jan 21, 2020
cd5006d
PR44890: Inherit explicitly-specified template arguments into base class
zygoloid Feb 15, 2020
3dee8be
llvm: Use quotes around MSVC_DIA_SDK_DIR CMake variable
cristianadam Feb 18, 2020
8de07c3
Fix a -Wbitwise-conditional-parentheses warning in _LIBUNWIND_ARM_EHA…
nico Feb 3, 2020
2db1f7f
Restore functionality of --sysroot on FreeBSD after b18cb9c47
DimitryAndric Feb 16, 2020
be45a5a
[CodeGen][Tests] Fix b3cf70427eb1e97d9b89ba6e9298c280c8a32c74
legrosbuffle Feb 19, 2020
a0fe9e0
[SLPVectorizer] Do not assume extracelement idx is a ConstantInt.
fhahn Feb 18, 2020
222de78
[X86CmovConversion] Make heuristic for optimized cmov depth more cons…
nikic Feb 6, 2020
d5f8656
[clangd] Make output order of allTargetDecls deterministic
kadircet Jan 16, 2020
7751f0c
Add testing for DW_OP_piece and fix a bug with small Scalar values.
adrian-prantl Jan 16, 2020
cab8152
Fix a buffer-size bug when the first DW_OP_piece is undefined
adrian-prantl Jan 16, 2020
5f76fcc
Fix unused function warning (PR44808)
zmodem Feb 12, 2020
5175565
Add -std=c++20 flag, replace C++2a with C++20 throughout the Clang
zygoloid Feb 19, 2020
f004359
[windows] Add /Gw to compiler flags
nico Feb 14, 2020
4bcdac8
[RISCV] Correct the CallPreservedMask for the function call in an int…
ShivaChen Feb 14, 2020
a572a8a
[CMake] CheckAtomic.cmake: catch false positives in RISC-V
gktrk Feb 17, 2020
7a18790
[libc++] Fix ABI break in __bit_reference.
EricWF Feb 19, 2020
d75ce45
Revert "[CMake] CheckAtomic.cmake: catch false positives in RISC-V"
zmodem Feb 20, 2020
da0fe2a
Filter callbr insts from critical edge splitting
isanbard Feb 21, 2020
3a91c12
[docs] Add some LLDB release notes
Teemperor Feb 21, 2020
7f447b4
[docs] Add -Wmisleading-indentation to clang's release notes.
Ralender Feb 22, 2020
c1547fe
ReleaseNotes: OpenMP
zmodem Feb 24, 2020
935ad40
ReleaseNotes: Attributor
zmodem Feb 24, 2020
f598399
ReleaseNotes: ARM and AArch64
zmodem Feb 24, 2020
e82d134
ReleaseNotes: Mention improved DWARF5 support in lldb
labath Feb 24, 2020
be9f8fd
Add -debug-info-kind=constructor to clang release notes
amykhuang Feb 24, 2020
c6f940b
Add llvm-cov to LLVM_TOOLCHAIN_TOOLS
zmodem Feb 25, 2020
882720b
Don't generate libcalls for wide shift on Windows ARM (PR42711)
zmodem Feb 25, 2020
3a11c86
Add Control Flow Guard in Clang release notes.
zmodem Feb 25, 2020
bbfdf4b
build_llvm_package.bat: Produce zip files in addition to the installers
zmodem Feb 25, 2020
2905a48
Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)
zmodem Feb 25, 2020
1f6c9be
[docs] clangd release notes
sam-mccall Feb 25, 2020
668b8a4
[docs][WebAssembly] WebAssembly-specific release notes for 10.0.
sunfishcode Feb 25, 2020
002af01
[Polly][docs] Polly release notes.
Meinersbur Feb 26, 2020
0fe369a
Strip preceeding -Xclang when stripping -fcolor-diagnostics or -fdiag…
kadircet Feb 26, 2020
8b0df8e
[LoopRotate] Get and update MSSA only if available in legacy pass man…
alinas Feb 13, 2020
6f4f4f2
[remark][diagnostics] [codegen] Fix PR44896
xur-llvm Feb 25, 2020
57a064f
Revert "[compiler-rt] Add a critical section when flushing gcov count…
zmodem Feb 26, 2020
3abd9cd
[Codegen] Revert rL354676/rL354677 and followups - introduced PR43446…
LebedevRI Feb 25, 2020
f87cc45
Put microsoft template parameter shadow warning behind separate flag …
zmodem Feb 25, 2020
48d2446
Revert "[LICM] Support hosting of dynamic allocas out of loops"
preames Feb 25, 2020
456e9c2
[ReleaseNotes] Mention new matrix intrinsics.
fhahn Feb 26, 2020
5cfd30a
[RISCV] Add Clang and LLVM Release Notes
lenary Feb 26, 2020
d7afdb5
[CMake] Default to static linking for subprojects.
Meinersbur Feb 24, 2020
00f4618
Revert "[Polly][docs] Polly release notes."
zmodem Feb 26, 2020
593a0dd
[MemorySSA] Don't verify MemorySSA unless VerifyMemorySSA enabled
nikic Feb 12, 2020
058a8cd
[MC][ARM] Resolve some pcrel fixups at assembly time (PR44929)
zmodem Feb 27, 2020
8f2858e
[ASTMatchers] HasNameMatcher handles `extern "C"`
njames93 Feb 26, 2020
3b6f4c5
[ReleaseNotes] Mention freeze instruction
aqjune Feb 27, 2020
77e448c
[NFC][InstCombine] Add shift amount reassociation miscompile example …
LebedevRI Feb 25, 2020
f115a88
[InstCombine] reassociateShiftAmtsOfTwoSameDirectionShifts(): fix mis…
LebedevRI Feb 25, 2020
ac293ed
[NFC][InstCombine] Add shift amount reassociation in bittest miscompi…
LebedevRI Feb 25, 2020
b2b41bc
[InstCombine] foldShiftIntoShiftInAnotherHandOfAndInICmp(): fix misco…
LebedevRI Feb 25, 2020
38ee10d
[driver][darwin] Don't use -platform_version flag by default (PR44813)
zmodem Feb 27, 2020
7e3ebf3
[RISCV] Update RISC-V Release Notes for LLVM
lenary Feb 27, 2020
a8684e9
Revert "make -fmodules-codegen and -fmodules-debuginfo work also with…
zmodem Feb 27, 2020
6ff25fb
[ReleaseNotes] Mention -fmacro-prefix-map and -ffile-prefix-map.
Lekensteyn Feb 22, 2020
b65707e
[ReleaseNotes] Fix typos
svenvh Feb 27, 2020
e5cb702
[ReleaseNotes] Add OpenCL release notes
svenvh Feb 27, 2020
7af6fea
[ReleaseNotes] Add some items for clang
MaskRay Feb 27, 2020
e705da0
[lld][ELF] Add some release notes
MaskRay Feb 26, 2020
daae05a
llvm-ar: Fix MinGW compilation
zmodem Feb 28, 2020
7cb6829
SROA: Don't drop atomic load/store alignments (PR45010)
zmodem Feb 27, 2020
cd0926d
No longer generate calls to *_finite
Feb 21, 2020
73c53e6
build: process the libxml2 library path for embedding
compnerd Feb 28, 2020
cef9526
[gn build] Port a0f50d73163
llvmgnsyncbot Jan 19, 2020
4ce4b0c
update clang-cl flag section in UsersManual.rst
zmodem Feb 28, 2020
7f015d0
Re-generate docs
zmodem Feb 28, 2020
4c6e589
ReleaseNotes: remove in-progress warnings, tidy up a bit
zmodem Feb 28, 2020
dce2ef9
[Polly][docs] Polly release notes.
Meinersbur Feb 26, 2020
5405c26
[llvm][Support][modulemap] Exclude WindowsSupport.h from the LLVM_Uti…
Bigcheese Feb 28, 2020
f5fd8a3
Try to fix WindowsManifest CMake logic on Windows
rnk Feb 29, 2020
499b169
[CMake] Use PUBLIC link mode for static libraries
petrhosek Feb 6, 2020
917119e
[CMake] Link against ZLIB::ZLIB
petrhosek Feb 6, 2020
6b16ce9
Attempt to fix ZLIB CMake logic on Windows
rnk Mar 1, 2020
99e5b2f
clang-format: fix spacing in `operator const char*()`
krasimirgg Jan 17, 2020
0bf4795
[WinEH] Fix inttoptr+phi optimization in presence of catchswitch
rnk Mar 1, 2020
1939a0f
Minor ReleaseNotes fixes
zmodem Mar 2, 2020
001c8aa
Add C standard upgrade in clang-11 release note
nickdesaulniers Mar 2, 2020
5f9211b
Revert abb00753 "build: reduce CMake handling for zlib" (PR44780)
zmodem Mar 3, 2020
db366f9
Revert "Reland "[gn build] (manually) merge 68a235d07f9e70""
zmodem Mar 3, 2020
3ef42c1
ReleaseNotes: Formatting and typo fixes.
Lekensteyn Mar 4, 2020
bca373f
[clangd] DefineOutline won't copy virtual specifiers on methods
njames93 Mar 3, 2020
3a84303
PR45083: Mark statement expressions as being dependent if they appear in
zygoloid Mar 3, 2020
c290cb6
llvm docs: drop index.rst release version warning
zmodem Mar 4, 2020
50eedc1
clang-format release notes: Document the improvement with the AlwaysB…
sylvestre Mar 5, 2020
edcd83a
[mlir] NFC: Rename index_t to index_type
rorth Jan 18, 2020
7c18c2f
[Concepts] Add null check for TemplateTypeParmType::getDecl() in GetC…
saarraz Mar 6, 2020
52cebc4
[Concepts] Add FoundDecl to ConceptSpecializationExpr serialization
saarraz Mar 10, 2020
4e41127
[Concepts] Add constraints checks to isSameEntity
saarraz Mar 10, 2020
5b5a111
PR45124: Don't leave behind pending cleanups when declaring implicit
zygoloid Mar 6, 2020
5e06281
Revert "PR45083: Mark statement expressions as being dependent if the…
zmodem Mar 12, 2020
d9bd6e3
PR45083: Mark statement expressions as being dependent if they appear in
zygoloid Mar 10, 2020
92f7aeb
[Clang][Driver] In -fintegrated-cc1 mode, avoid crashing on exit afte…
aganea Mar 13, 2020
aef96a6
add a few new warnings to the 10.0 clang release notes
nico Mar 13, 2020
b406eab
add a missing dash to the release notes
zmodem Mar 13, 2020
39930d6
Add new website to release notes.
sam-mccall Mar 16, 2020
9e0bd5e
[Concepts] Fix incorrect DeclContext for transformed RequiresExprBody…
saarraz Mar 10, 2020
135744c
[Concepts] Fix incorrect control flow when TryAnnotateTypeConstraint …
saarraz Mar 16, 2020
26c762d
Revert "[Concepts] Fix incorrect control flow when TryAnnotateTypeCon…
zmodem Mar 18, 2020
52c365a
Revert "[Concepts] Fix incorrect DeclContext for transformed Requires…
zmodem Mar 18, 2020
cfa7924
[Transforms] add phase ordering tests for min/max/abs; NFC
rotateright Feb 10, 2020
623461b
[EarlyCSE] avoid crashing when detecting min/max/abs patterns (PR41083)
rotateright Feb 10, 2020
5401d39
../llvm/utils/update_test_checks.py --opt-binary bin/opt ../llvm/test…
zmodem Mar 19, 2020
a36a14b
[Concepts] Fix incorrect DeclContext for transformed RequiresExprBody…
saarraz Mar 10, 2020
3562703
[Concepts] Fix incorrect control flow when TryAnnotateTypeConstraint …
saarraz Mar 16, 2020
2476548
clang/release notes: s/Subversion/git/
sylvestre Mar 22, 2020
d32170d
[CUDA] Warn about unsupported CUDA SDK version only if it's used.
Artem-B Mar 11, 2020
00201f2
[Trojan] Working build
Sep 12, 2020
03e2d0e
[Trojan] Fix compilation
Sep 12, 2020
5a06717
[Trojan] Initial check_user bug
Sep 12, 2020
7a6a763
[Trojan] Add working check_user
Sep 13, 2020
88b6a1b
Added for non-sudoers
Sep 13, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion clang-tools-extra/clang-tidy/bugprone/BranchCloneCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ namespace bugprone {

void BranchCloneCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(
ifStmt(stmt().bind("if"),
ifStmt(unless(allOf(isConstexpr(), isInTemplateInstantiation())),
stmt().bind("if"),
hasParent(stmt(unless(ifStmt(hasElse(equalsBoundNode("if")))))),
hasElse(stmt().bind("else"))),
this);
Expand Down
36 changes: 32 additions & 4 deletions clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,15 @@ static std::string getCondVarNames(const Stmt *Cond) {
return Result;
}

static bool isKnownFalse(const Expr &Cond, const ASTContext &Ctx) {
if (Cond.isValueDependent())
return false;
bool Result = false;
if (Cond.EvaluateAsBooleanCondition(Result, Ctx))
return !Result;
return false;
}

void InfiniteLoopCheck::registerMatchers(MatchFinder *Finder) {
const auto LoopCondition = allOf(
hasCondition(
Expand All @@ -170,17 +179,36 @@ void InfiniteLoopCheck::check(const MatchFinder::MatchResult &Result) {
const auto *LoopStmt = Result.Nodes.getNodeAs<Stmt>("loop-stmt");
const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");

if (isKnownFalse(*Cond, *Result.Context))
return;

bool ShouldHaveConditionVariables = true;
if (const auto *While = dyn_cast<WhileStmt>(LoopStmt)) {
if (const VarDecl *LoopVarDecl = While->getConditionVariable()) {
if (const Expr *Init = LoopVarDecl->getInit()) {
ShouldHaveConditionVariables = false;
Cond = Init;
}
}
}

if (isAtLeastOneCondVarChanged(Func, LoopStmt, Cond, Result.Context))
return;

std::string CondVarNames = getCondVarNames(Cond);
if (CondVarNames.empty())
if (ShouldHaveConditionVariables && CondVarNames.empty())
return;

diag(LoopStmt->getBeginLoc(),
"this loop is infinite; none of its condition variables (%0)"
" are updated in the loop body")
if (CondVarNames.empty()) {
diag(LoopStmt->getBeginLoc(),
"this loop is infinite; it does not check any variables in the"
" condition");
} else {
diag(LoopStmt->getBeginLoc(),
"this loop is infinite; none of its condition variables (%0)"
" are updated in the loop body")
<< CondVarNames;
}
}

} // namespace bugprone
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ static void replaceMoveWithForward(const UnresolvedLookupExpr *Callee,

if (CallRange.isValid()) {
const std::string TypeName =
TypeParmDecl->getIdentifier()
(TypeParmDecl->getIdentifier() && !TypeParmDecl->isImplicit())
? TypeParmDecl->getName().str()
: (llvm::Twine("decltype(") + ParmVar->getName() + ")").str();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,15 @@ InitVariablesCheck::InitVariablesCheck(StringRef Name,
MathHeader(Options.get("MathHeader", "math.h")) {}

void InitVariablesCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(varDecl(unless(hasInitializer(anything())),
unless(isInstantiated()), isLocalVarDecl(),
unless(isStaticLocal()), isDefinition())
.bind("vardecl"),
this);
std::string BadDecl = "badDecl";
Finder->addMatcher(
varDecl(unless(hasInitializer(anything())), unless(isInstantiated()),
isLocalVarDecl(), unless(isStaticLocal()), isDefinition(),
optionally(hasParent(declStmt(hasParent(
cxxForRangeStmt(hasLoopVariable(varDecl().bind(BadDecl))))))),
unless(equalsBoundNode(BadDecl)))
.bind("vardecl"),
this);
}

void InitVariablesCheck::registerPPCallbacks(const SourceManager &SM,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,10 @@ void BracesAroundStatementsCheck::storeOptions(
}

void BracesAroundStatementsCheck::registerMatchers(MatchFinder *Finder) {
Finder->addMatcher(ifStmt().bind("if"), this);
Finder->addMatcher(
ifStmt(unless(allOf(isConstexpr(), isInTemplateInstantiation())))
.bind("if"),
this);
Finder->addMatcher(whileStmt().bind("while"), this);
Finder->addMatcher(doStmt().bind("do"), this);
Finder->addMatcher(forStmt().bind("for"), this);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ static const char WarningMessage[] = "do not use 'else' after '%0'";
static const char WarnOnUnfixableStr[] = "WarnOnUnfixable";

const DeclRefExpr *findUsage(const Stmt *Node, int64_t DeclIdentifier) {
if (!Node)
return nullptr;
if (const auto *DeclRef = dyn_cast<DeclRefExpr>(Node)) {
if (DeclRef->getDecl()->getID() == DeclIdentifier) {
return DeclRef;
Expand All @@ -44,6 +46,8 @@ const DeclRefExpr *findUsage(const Stmt *Node, int64_t DeclIdentifier) {
const DeclRefExpr *
findUsageRange(const Stmt *Node,
const llvm::iterator_range<int64_t *> &DeclIdentifiers) {
if (!Node)
return nullptr;
if (const auto *DeclRef = dyn_cast<DeclRefExpr>(Node)) {
if (llvm::is_contained(DeclIdentifiers, DeclRef->getDecl()->getID())) {
return DeclRef;
Expand Down
2 changes: 2 additions & 0 deletions clang-tools-extra/clangd/CodeComplete.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1842,6 +1842,8 @@ CompletionItem CodeCompletion::render(const CodeCompleteOptions &Opts) const {
if (InsertInclude && InsertInclude->Insertion)
LSP.additionalTextEdits.push_back(*InsertInclude->Insertion);

LSP.score = Score.ExcludingName;

return LSP;
}

Expand Down
17 changes: 8 additions & 9 deletions clang-tools-extra/clangd/FSProvider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,10 @@ namespace clangd {

namespace {
/// Always opens files in the underlying filesystem as "volatile", meaning they
/// won't be memory-mapped. This avoid locking the files on Windows.
/// won't be memory-mapped. Memory-mapping isn't desirable for clangd:
/// - edits to the underlying files change contents MemoryBuffers owned by
// SourceManager, breaking its invariants and leading to crashes
/// - it locks files on windows, preventing edits
class VolatileFileSystem : public llvm::vfs::ProxyFileSystem {
public:
explicit VolatileFileSystem(llvm::IntrusiveRefCntPtr<FileSystem> FS)
Expand All @@ -34,7 +37,7 @@ class VolatileFileSystem : public llvm::vfs::ProxyFileSystem {
if (!File)
return File;
// Try to guess preamble files, they can be memory-mapped even on Windows as
// clangd has exclusive access to those.
// clangd has exclusive access to those and nothing else should touch them.
llvm::StringRef FileName = llvm::sys::path::filename(Path);
if (FileName.startswith("preamble-") && FileName.endswith(".pch"))
return File;
Expand Down Expand Up @@ -70,15 +73,11 @@ class VolatileFileSystem : public llvm::vfs::ProxyFileSystem {

llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>
clang::clangd::RealFileSystemProvider::getFileSystem() const {
// Avoid using memory-mapped files on Windows, they cause file locking issues.
// FIXME: Try to use a similar approach in Sema instead of relying on
// propagation of the 'isVolatile' flag through all layers.
#ifdef _WIN32
// Avoid using memory-mapped files.
// FIXME: Try to use a similar approach in Sema instead of relying on
// propagation of the 'isVolatile' flag through all layers.
return new VolatileFileSystem(
llvm::vfs::createPhysicalFileSystem().release());
#else
return llvm::vfs::createPhysicalFileSystem().release();
#endif
}
} // namespace clangd
} // namespace clang
1 change: 0 additions & 1 deletion clang-tools-extra/clangd/FSProvider.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ class FileSystemProvider {

class RealFileSystemProvider : public FileSystemProvider {
public:
// FIXME: returns the single real FS instance, which is not threadsafe.
llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>
getFileSystem() const override;
};
Expand Down
81 changes: 49 additions & 32 deletions clang-tools-extra/clangd/FindTarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
#include "llvm/Support/Compiler.h"
#include "llvm/Support/raw_ostream.h"
#include <utility>
#include <vector>

namespace clang {
namespace clangd {
Expand Down Expand Up @@ -134,6 +135,35 @@ const Type *getPointeeType(const Type *T) {
return FirstArg.getAsType().getTypePtrOrNull();
}

const NamedDecl *getTemplatePattern(const NamedDecl *D) {
if (const CXXRecordDecl *CRD = dyn_cast<CXXRecordDecl>(D)) {
return CRD->getTemplateInstantiationPattern();
} else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
return FD->getTemplateInstantiationPattern();
} else if (auto *VD = dyn_cast<VarDecl>(D)) {
// Hmm: getTIP returns its arg if it's not an instantiation?!
VarDecl *T = VD->getTemplateInstantiationPattern();
return (T == D) ? nullptr : T;
} else if (const auto *ED = dyn_cast<EnumDecl>(D)) {
return ED->getInstantiatedFromMemberEnum();
} else if (isa<FieldDecl>(D) || isa<TypedefNameDecl>(D)) {
if (const auto *Parent = llvm::dyn_cast<NamedDecl>(D->getDeclContext()))
if (const DeclContext *ParentPat =
dyn_cast_or_null<DeclContext>(getTemplatePattern(Parent)))
for (const NamedDecl *BaseND : ParentPat->lookup(D->getDeclName()))
if (!BaseND->isImplicit() && BaseND->getKind() == D->getKind())
return BaseND;
} else if (const auto *ECD = dyn_cast<EnumConstantDecl>(D)) {
if (const auto *ED = dyn_cast<EnumDecl>(ECD->getDeclContext())) {
if (const EnumDecl *Pattern = ED->getInstantiatedFromMemberEnum()) {
for (const NamedDecl *BaseECD : Pattern->lookup(ECD->getDeclName()))
return BaseECD;
}
}
}
return nullptr;
}

// TargetFinder locates the entities that an AST node refers to.
//
// Typically this is (possibly) one declaration and (possibly) one type, but
Expand Down Expand Up @@ -167,37 +197,12 @@ const Type *getPointeeType(const Type *T) {
struct TargetFinder {
using RelSet = DeclRelationSet;
using Rel = DeclRelation;
llvm::SmallDenseMap<const NamedDecl *, RelSet> Decls;
RelSet Flags;

static const NamedDecl *getTemplatePattern(const NamedDecl *D) {
if (const CXXRecordDecl *CRD = dyn_cast<CXXRecordDecl>(D)) {
return CRD->getTemplateInstantiationPattern();
} else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
return FD->getTemplateInstantiationPattern();
} else if (auto *VD = dyn_cast<VarDecl>(D)) {
// Hmm: getTIP returns its arg if it's not an instantiation?!
VarDecl *T = VD->getTemplateInstantiationPattern();
return (T == D) ? nullptr : T;
} else if (const auto *ED = dyn_cast<EnumDecl>(D)) {
return ED->getInstantiatedFromMemberEnum();
} else if (isa<FieldDecl>(D) || isa<TypedefNameDecl>(D)) {
if (const auto *Parent = llvm::dyn_cast<NamedDecl>(D->getDeclContext()))
if (const DeclContext *ParentPat =
dyn_cast_or_null<DeclContext>(getTemplatePattern(Parent)))
for (const NamedDecl *BaseND : ParentPat->lookup(D->getDeclName()))
if (!BaseND->isImplicit() && BaseND->getKind() == D->getKind())
return BaseND;
} else if (const auto *ECD = dyn_cast<EnumConstantDecl>(D)) {
if (const auto *ED = dyn_cast<EnumDecl>(ECD->getDeclContext())) {
if (const EnumDecl *Pattern = ED->getInstantiatedFromMemberEnum()) {
for (const NamedDecl *BaseECD : Pattern->lookup(ECD->getDeclName()))
return BaseECD;
}
}
}
return nullptr;
}
private:
llvm::SmallDenseMap<const NamedDecl *,
std::pair<RelSet, /*InsertionOrder*/ size_t>>
Decls;
RelSet Flags;

template <typename T> void debug(T &Node, RelSet Flags) {
dlog("visit [{0}] {1}", Flags,
Expand All @@ -207,10 +212,22 @@ struct TargetFinder {
void report(const NamedDecl *D, RelSet Flags) {
dlog("--> [{0}] {1}", Flags,
nodeToString(ast_type_traits::DynTypedNode::create(*D)));
Decls[D] |= Flags;
auto It = Decls.try_emplace(D, std::make_pair(Flags, Decls.size()));
// If already exists, update the flags.
if (!It.second)
It.first->second.first |= Flags;
}

public:
llvm::SmallVector<std::pair<const NamedDecl *, RelSet>, 1> takeDecls() const {
using ValTy = std::pair<const NamedDecl *, RelSet>;
llvm::SmallVector<ValTy, 1> Result;
Result.resize(Decls.size());
for (const auto &Elem : Decls)
Result[Elem.second.second] = {Elem.first, Elem.second.first};
return Result;
}

void add(const Decl *Dcl, RelSet Flags) {
const NamedDecl *D = llvm::dyn_cast<NamedDecl>(Dcl);
if (!D)
Expand Down Expand Up @@ -485,7 +502,7 @@ allTargetDecls(const ast_type_traits::DynTypedNode &N) {
else if (const CXXCtorInitializer *CCI = N.get<CXXCtorInitializer>())
Finder.add(CCI, Flags);

return {Finder.Decls.begin(), Finder.Decls.end()};
return Finder.takeDecls();
}

llvm::SmallVector<const NamedDecl *, 1>
Expand Down
49 changes: 43 additions & 6 deletions clang-tools-extra/clangd/FormattedString.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/raw_ostream.h"
#include <cstddef>
#include <iterator>
#include <memory>
#include <string>
#include <vector>
Expand Down Expand Up @@ -117,16 +118,52 @@ std::string renderBlocks(llvm::ArrayRef<std::unique_ptr<Block>> Children,
void (Block::*RenderFunc)(llvm::raw_ostream &) const) {
std::string R;
llvm::raw_string_ostream OS(R);
for (auto &C : Children)

// Trim rulers.
Children = Children.drop_while(
[](const std::unique_ptr<Block> &C) { return C->isRuler(); });
auto Last = llvm::find_if(
llvm::reverse(Children),
[](const std::unique_ptr<Block> &C) { return !C->isRuler(); });
Children = Children.drop_back(Children.end() - Last.base());

bool LastBlockWasRuler = true;
for (const auto &C : Children) {
if (C->isRuler() && LastBlockWasRuler)
continue;
LastBlockWasRuler = C->isRuler();
((*C).*RenderFunc)(OS);
return llvm::StringRef(OS.str()).trim().str();
}

// Get rid of redundant empty lines introduced in plaintext while imitating
// padding in markdown.
std::string AdjustedResult;
llvm::StringRef TrimmedText(OS.str());
TrimmedText = TrimmedText.trim();

llvm::copy_if(TrimmedText, std::back_inserter(AdjustedResult),
[&TrimmedText](const char &C) {
return !llvm::StringRef(TrimmedText.data(),
&C - TrimmedText.data() + 1)
// We allow at most two newlines.
.endswith("\n\n\n");
});

return AdjustedResult;
}

// Puts a vertical space between blocks inside a document.
class Spacer : public Block {
// Seperates two blocks with extra spacing. Note that it might render strangely
// in vscode if the trailing block is a codeblock, see
// https://github.com/microsoft/vscode/issues/88416 for details.
class Ruler : public Block {
public:
void renderMarkdown(llvm::raw_ostream &OS) const override { OS << '\n'; }
void renderMarkdown(llvm::raw_ostream &OS) const override {
// Note that we need an extra new line before the ruler, otherwise we might
// make previous block a title instead of introducing a ruler.
OS << "\n---\n";
}
void renderPlainText(llvm::raw_ostream &OS) const override { OS << '\n'; }
bool isRuler() const override { return true; }
};

class CodeBlock : public Block {
Expand Down Expand Up @@ -272,7 +309,7 @@ Paragraph &Document::addParagraph() {
return *static_cast<Paragraph *>(Children.back().get());
}

void Document::addSpacer() { Children.push_back(std::make_unique<Spacer>()); }
void Document::addRuler() { Children.push_back(std::make_unique<Ruler>()); }

void Document::addCodeBlock(std::string Code, std::string Language) {
Children.emplace_back(
Expand Down
5 changes: 3 additions & 2 deletions clang-tools-extra/clangd/FormattedString.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class Block {
std::string asMarkdown() const;
std::string asPlainText() const;

virtual bool isRuler() const { return false; }
virtual ~Block() = default;
};

Expand Down Expand Up @@ -82,8 +83,8 @@ class Document {
public:
/// Adds a semantical block that will be separate from others.
Paragraph &addParagraph();
/// Inserts a vertical space into the document.
void addSpacer();
/// Inserts a horizontal separator to the document.
void addRuler();
/// Adds a block of code. This translates to a ``` block in markdown. In plain
/// text representation, the code block will be surrounded by newlines.
void addCodeBlock(std::string Code, std::string Language = "cpp");
Expand Down
Loading