1# Release Notes
2
3## clang-r383902
4
5### Upstream Cherry-picks
6Patches with start_version: 383902 in https://android.googlesource.com/toolchain/llvm_android/+/master/patches/PATCHES.json.
7
8### Local Changes
9Revert 90c31b0f428f [X86] Custom lower ISD::FROUND with SSE4.1 to avoid a libcall.
10
11### Notes
12New Clang warnings encountered:
13- -Wdeprecated-copy
14- -Wrange-loop-construct
15- -Wmisleading-indentation
16- -Wzero-as-null-pointer-constant (not new, but seems to have stricter rule)
17- -Wdeprecated-anon-enum-enum-conversion
18- -Wdeprecated-enum-enum-conversion
19- -Wstring-compare
20- -Wenum-enum-conversion
21- -Wenum-float-conversion
22- -Wpessimizing-move
23
24New Clang-tidy warnings encountered:
25- -bugprone-reserved-identifier*,-cert-dcl51-cpp,-cert-dcl37-c
26- -readability-qualified-auto
27- -bugprone-signed-char-misuse
28- -bugprone-branch-clone
29
30Clang detects new compilation errors for not-instantiated template member functions.
31Switch from python wrapper to go wrapper.
32
33### Enabled
34May 01 2020
35
36------
37## clang-r377782d
38
39### Upstream Cherry-picks
40- 6c732461 [ELF] Fix a null pointer dereference when --emit-relocs and --strip-debug are used together
41
42### Enabled
43Apr 04 2020
44
45------
46## clang-r377782c
47
48### Upstream Cherry-picks
49- 41206b61e30c [DebugInfo] Re-instate LiveDebugVariables scope trimming
50- 1de10705594c [DAGCombine] Fix alias analysis for unaligned accesses
51
52### Enabled
53Mar 19 2020
54
55------
56## clang-r377782b
57
58### Upstream Cherry-picks
59- a3b22da4e0ea [CFG] Fix a flaky crash in CFGBlock::getLastCondition().
60- d32484f40cbe [lldb][CMake] Fix build for the case of custom libedit installation
61- 21f26470e974 Revert 3f91705ca54 ARM-NEON: make type modifiers orthogonal and allow multiple modifiers
62- 90b8bc003caa IRGen: Call SetLLVMFunctionAttributes{,ForDefinition} on __cfi_check_fail
63- acc79aa0e747 Revert "Revert 1689ad27af5"[builtins] Implement rounding mode support for i386/x86_64
64- c5b890e92243 PR44268: Fix crash if __builtin_object_size is applied to a heap allocation.
65- cd40bd0a32e2 hwasan: Move .note.hwasan.globals note to hwasan.module_ctor comdat.
66- 4f38ab250ff4 [LLD][ELF][ARM] Do not insert interworking thunks for non STT_FUNC symbols
67- 6c4a8bc0a9f6 Make llvm::crc32() work also for input sizes larger than 32 bits.
68- f8c9ceb1ce9c [SimplifyLibCalls] Add __strlen_chk.
69
70### Local Changes
71- Revert two changes that break Android builds
72- Add stubs and headers for nl_types APIs
73- Add a new library libclang cxx
74- Do not record function addresses if value profiling is disabled
75
76### Notes
77New Clang warnings encountered:
78- -Wbitwise-conditional-parentheses
79- -Wbool-operation
80- -Wint-in-bool-context
81- -Wsizeof-array-div
82- -Wtautological-bitwise-compare
83- -Wtautological-overlap-compare
84
85### Enabled
86Feb 18 2020
87
88------
89## clang-r370808
90
91### Upstream Cherry-picks
92- 1689ad27af5c [builtins] Implement rounding mode support for i386/x86_64
93- 9e7ce07a8866 ARM: Don't emit R_ARM_NONE relocations to compact unwinding decoders in .ARM.exidx on Android.
94- 51adeae1c90c remove redundant LLVM version from version string when setting CLANG_VENDOR
95- 8ea148dc0cbf [Builtins] Fix bug where powerpc builtins specializations didn't remove generic implementations.
96- 7a2b704bf0cf [Sema][Typo Correction] Fix another infinite loop on ambiguity
97- r370981 [DebugInfo] Emit DW_TAG_enumeration_type for referenced global enumerator.
98- r371003 Revert "Revert "[builtins] Rounding mode support for addxf3/subxf3""
99- r371090 Fix windows-x86-debug compilation with python enabled using multi-target generator
100- r371111 [IfConversion] Fix diamond conversion with unanalyzable branches.
101- r371202 Revert r370635, it caused PR43241.
102- r371215 Revert "Revert r370635, it caused PR43241."
103- r371216 Reland D66717 [ELF] Do not ICF two sections with different output sections (by SECTIONS commands)
104- r371262 [IR] CallBrInst: scan+update arg list when indirect dest list changes
105- r371434 [IfConversion] Correctly handle cases where analyzeBranch fails.
106- r371643 [IRMover] Don't map globals if their types are the same
107- r371804 [ELF] Delete a redundant assignment to SectionBase::assigned. NFC
108- r371859 [Sema][Typo Correction] Fix potential infite loop on ambiguity checks
109- r371957 [ELF] Map the ELF header at imageBase
110- r372047 Fix swig python package path
111- r372194 Cache PYTHON_EXECUTABLE for windows
112- r372364 Revert "Fix swig python package path"
113- r372400 [ELF] Error if the linked-to section of a SHF_LINK_ORDER section is discarded
114- r372482 [LLDB] Fix compilation for MinGW, remove redundant class name on inline member
115- r372493 Use _WIN32 instead of _MSC_VER
116- r372587 [LLDB] Add a missing specification of linking against dbghelp
117- r372734 [ELF] Make MergeInputSection merging aware of output sections
118- r372735 [ELF] Delete SectionBase::assigned
119- r372835 [lldb] [cmake] Fix installing Python modules on systems using /usr/lib
120- r372996 [ELF] Set SectionBase::partition in processSectionCommands
121- r373022 Always rebuild a DeclRefExpr if its FoundDecl would change.
122- r373035 hwasan: Compatibility fixes for short granules.
123- r373255 ELF: Don't merge SHF_LINK_ORDER sections for different output sections in relocatable links.
124- r373929 Fix Calling Convention through aliases
125- r375166 libhwasan initialisation include kernel syscall ABI relaxation
126- r375298 hwasan: Add missing SANITIZER_INTERFACE_ATTRIBUTE on __hwasan_personality_wrapper.
127
128### Notes
129New Clang warnings encountered:
130- -Wreorder-init-list
131- -Walloca
132- -Wc99-designator
133- -Wdangling-gsl
134- -Wimplicit-fallthrough
135- -Wimplicit-int-float-conversion
136- -Wincomplete-setjmp-declaration
137- -Wpointer-compare
138- -Wxor-used-as-pow
139
140-Wimplicit fallthrough was previously only checked for C++ code, but Clang can
141now for for C code. `__attribute__((__fallthrough__))` should be used to
142explicitly specify intentional fallthrough to silence the warning.
143
144Lots of cherry picks are fixes for LLDB and HWASAN.
145
146r373035 is slightly different from upstream due to not additionally cherry
147picking r372338.
148
149Writes to variables declared const through casts to non-const pointers
150(explicitly undefined behavior) are now removed. The next release of Clang adds
151UBSAN support for catching such mistakes.
152
153### Created
154Nov 11 2019
155
156-----
157## clang-r365631c
158
159### Upstream Cherry-picks
160- r366130 [LoopUnroll+LoopUnswitch] do not transform loops containing callbr
161- r369761 [llvm-objcopy] Strip debug sections when running with --strip-unneeded.
162- r370981 [DebugInfo] Emit DW_TAG_enumeration_type for referenced global enumerator.
163- r372047 Fix swig python package path
164- r372194 Cache PYTHON_EXECUTABLE for windows
165- r372364 Revert "Fix swig python package path"
166- r372587 [LLDB] Add a missing specification of linking against dbghelp
167- r372835 [lldb] [cmake] Fix installing Python modules on systems using /usr/lib
168
169### Notes
170Fixes for:
171- asm goto + LTO in Android Linux kernels
172- debug info missing for enums
173- NDK fixes for:
174  - stripping debug sections w/ llvm-objcopy/llvm-strip
175  - LLDB
176
177### Created
178Sep 26 2019
179
180-----
181## Older Releases
182Release notes not available.
183