db/fixup_kernel.sh: delete some impossible returns
[smatch.git] / Documentation / release-notes / v0.5.0.rst
bloba1e353e1037bce8b0c5b8dfc9ccde9ffd0186b93
1 v0.5.0 (2014-04-01)
2 ===================
4 As a lot of you have already noticed. The sparse 0.5.0 has been
5 tagged and upload to the kernel.org for a while.
7 One of the most noticeable change of the sparse 0.5.0 is the
8 license. The sparse project has finally move to the MIT license.
9 Thanks for the hard work of Dan Carpenter and Franz Schrober,
10 who contact and collect permissions from the sparse developers.
11 We actually manage to get *all* developer's blessing on the MIT
12 license.
14 This release also has some enhancement matching the latest
15 kernel source annotations. It will reduce the noise level of the sparse
16 warnings.
18 So there you have it. The official announcement of the sparse 0.5.0.
20 Chris
21 ---
23 Al Viro (9):
24    * Fix handling of __func__
25    * Fix tab handling in nextchar_slow()
26    * Fix ,##__VA_ARGS__ kludge
27    * Gentler handling of bitwise warnings in unary operations
28    * simplify handling of newline/whitespace flags in expand()
29    * fix handling of -include
30    * massage handling of wide string literals/character constants in tokenizer
31    * switch to delayed handling of escape sequences
32    * L ## 'a' is valid; so's L ## "a"
34 Benjamin Herrenschmidt (1):
35    * sparse, llvm: Fix varargs functions
37 Christopher Li (19):
38    * Limit usage of g++ to llvm related programs.
39    * Merge branch 'sparse-llvm' of git://github.com/penberg/sparse-llvm.git
40    * Adding default for m64/m32 handle
41    * Merge branch 'for-chris' of git://github.com/penberg/sparse-llvm
42    * Merge branch 'llvm/core' of github.com:penberg/sparse-llvm
43    * remove weak define x86_64
44    * Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse into marge
45    * Clean up some test case error.
46    * Fix segfault cause by fucntion without ident.
47    * Get rid of gcc warning about enum values
48    * Larger buffer size for token concatenation
49    * Proper variable length array warning
50    * Allow forced attribute in function argument
51    * Trivial: Remove redundant Makefile variable
52    * Merge branch 'llvmcore'
53    * Merge branch 'Novafora' of git://git.zytor.com/users/hpa/sparse/sparse
54      into license
55    * Sparse 0.5.0 rc1
56    * Fix make dist failure
57    * Sparse 0.5.0
59 Emilio G. Cota (1):
60    * gitignore: add 'version.h'
62 Ethan Jackson (1):
63    * sparse: Add 'leaf' to ignored attributes.
65 Franz Schrober (5):
66    * Revert "Update the information in README about using the library."
67    * Revert "Fix mistaken comparison that becomes a no-op."
68    * sparse: Relicense under the MIT license
69    * FAQ: Remove outdated sections about the license
70    * sparse: Also check bit_offset when checking implicit casts
72 Frederic Crozat (1):
73    * Add __builtin_stpcpy, __sync_synchronize, __sync_bool_compare_and_swap
74      to declare_builtin_functions
76 James Westby (1):
77    * Update the information in README about using the library.
79 Jan Pokorný (2):
80    * unssa: track use of newly added pseudo
81    * simplify: conservative handling of casts with pointers
83 Jeff Garzik (15):
84    * sparse, llvm: if-else code generation
85    * sparse-llvm: OP_SEL
86    * sparse-llvm: OP_SWITCH
87    * sparse-llvm: OP_LOAD
88    * sparse-llvm OP_PHISOURCE: replace copy with target=src pointer operation
89    * sparse, llvm: replace FIXME comment with assert(), following
90 existing style
91    * sparse, llvm: implement OP_CALL
92    * sparse, llvm: move OP_PHI code from switch statement to separate function
93    * sparse, llvm: move OP_CAST code to separate func.  support FP casts.
94    * sparse, llvm: create helper for obtaining instruction's type
95    * sparse, llvm: store module-local functions on function reference list
96    * sparse, llvm: move OP_COPY support to separate function.  Add FP support.
97    * sparse, llvm: support OP_STORE
98    * sparse, llvm: Fix loops, by properly handling OP_PHI forward references
99    * sparse, llvm: add loop testcase
101 Jeff Layton (1):
102    * sparse: add __builtin_va_arg_pack() and __builtin_va_arg_pack_len()
104 Joe Perches (1):
105    * There's no current way to know the version of sparse. Add --version to see it.
107 Jonathan Neuschäfer (9):
108    * FAQ: update the website address and call it Wiki
109    * ptrlist.c: fix a typo in a comment
110    * sparse, llvm: 'Verify' the LLVM module before writing it
111    * sparse, llvm: convert the condition of branch/select to bool
112    * sparse, llvm: Fix type of loaded values
113    * sparse, llvm: Fix resulting type of store address calculations
114    * sparse, llvm: de-duplicate load/store address calculation code
115    * sparse, llvm: base load/store address type on insn_symbol_type()
116    * sparse, llvm: add a struct access test case
118 Josh Triplett (2):
119    * Define __SIZEOF_POINTER__
120    * Support #pragma once
122 KOSAKI Motohiro (2):
123    * sparse: Add '__vector_size__' to ignored attributes
124    * sparse: Add 'error' to ignored attributes
126 Kamil Dudka (2):
127    * cse: treat PHI-nodes as other instructions
128    * cse: update PHI users when throwing away an instruction
129 Kim Phillips (2):
130    * sparse: add built-in byte swap identifiers
131    * sparse: add built-in atomic memory access identifiers
133 Linus Torvalds (1):
134    * sparse, llvm: Make function declaration accessible to backend
136 Masatake YAMATO (3):
137    * Warn about initialization of a char array with a too long
138 constant C string.
139    * Test case for -Winit-cstring option
140    * Add description for -Winit-cstring option
142 Mauro Dreissig (1):
143    * Fix wrong array size expression
145 Pekka Enberg (69):
146    * sparse, llvm: Initial commit
147    * sparse, llvm: Fix assert() in sparse code
148    * sparse, llvm: Fix global variable initialization
149    * sparse, llvm: Fix 'sparsec' when it's not in PATH
150    * llvm, sparse: Separate entry and exit basic blocks
151    * sparse, llvm: Add switch statement to output_insn()
152    * sparse, llvm: OP_RET/PSEUDO_VAL code generation
153    * sparse, llvm: Add support for OP_RET/PSEUDO_ARG
154    * sparse, llvm: Introduce 'struct function' to clean up code
155    * sparse, llvm: Add output_op_binary() stub
156    * sparse, llvm: Implement OP_ADD
157    * sparse, llvm: Add support for more binary ops
158    * sparse, llvm: Implement some binary comparison ops
159    * sparse, llvm: Move binop tests to validation/backend
160    * sparse, llvm: Implement OP_CAST
161    * sparse, llvm: Floating point support for binops
162    * sparse, llvm: Reorganize code generation tests
163    * sparse, llvm: Bitwise not operator codegen
164    * sparse, llvm: Kill ifdef'd unssa() call
165    * sparse, llvm: Kill debugging code
166    * Merge pull request #1 from jgarzik/hacks
167    * Merge pull request #2 from jgarzik/hacks
168    * sparse, llvm: Warn the user when we fall back to GCC
169    * sparse, llvm: Code generation for string constants
170    * sparse, llvm: Cleanup output_data()
171    * sparse, llvm: Fix OP_CAST to use zero-extend
172    * sparse, llvm: Improve sparsec front-end
173    * sparse, llvm: Fix PSEUDO_OP code generation
174    * sparse, llvm: Don't redefine module local functions
175    * Revert "sparse, llvm: Don't redefine module local functions"
176    * sparse, llvm: Fix code generation for casts
177    * sparse, llvm: Fix pseudo_type() for PSEUDO_ARG
178    * Merge pull request #3 from jgarzik/hacks
179    * Merge branch 'master' of github.com:penberg/sparse-llvm
180    * llvm, sparse: Fix symbol_is_fp_type() goof
181    * Merge pull request #4 from jgarzik/hacks
182    * sparse, llvm: Fix code generation for 'long double' data type
183    * sparse, llvm: Add support for struct types
184    * sparse, llvm: Add support for symbol initializers
185    * sparse: Bump up sizeof(_Bool) to 8 bits
186    * sparse, llvm: Add support for logical ops
187    * sparse, llvm: Fix 'void \*' pointer code generation
188    * sparse, llvm: Use new LLVM type system API for structs
189    * sparse, llvm: Fix struct code generation
190    * sparse, llvm: Fix symbol_type() for bitfields and enums
191    * sparse, llvm: Add support for array types
192    * sparse, llvm: Add support for union types
193    * sparse, llvm: Make 'sparsec' error handling more robust
194    * sparse, llvm: Function pointer code generation
195    * sparse, llvm: Fix symbol initializer code generation
196    * sparse, llvm: Fix 'extern' symbol code generation
197    * sparse, llvm: Make llc output to stdout in sparsec
198    * sparse, llvm: Pointer cast code generation
199    * sparse, llvm: OP_SET_B and OP_SET_A code generation
200    * sparse, llvm: More comparison ops code generation
201    * sparse, llvm: Simplify comparison op code generation
202    * sparse, llvm: FP comparison op code generation
203    * Merge pull request #6 from jgarzik/hacks
204    * sparse, llvm: Don't fail the build if LLVM is too old
205    * sparse, llvm: Use LLVMInt1Type() in sym_basetype_type()
206    * sparse, llvm: Add test case for <stdbool.h> type
207    * Revert "sparse: Bump up sizeof(_Bool) to 8 bits"
208    * sparse, llvm: Add _Bool to cast validation test
209    * sparse, llvm: Simplify output_data() type logic
210    * sparse, llvm: Fix string initializer code generation
211    * sparse, llvm: Fix global string access code generation
212    * sparse, llvm: Fix SIGSEGV for extern symbols
213    * sparse, llvm: Fix 'void' return type code generation
214    * sparse, llvm: Use LLVM_HOSTTRIPLE
216 Ramsay Jones (2):
217    * char.c: Fix parsing of escapes
218    * symbol.c: Set correct size of array from parenthesized string initializer
220 Randy Dunlap (1):
221    * sparse patch v2: add noclone as an ignored attribute
223 Robert Bedichek (1):
224    * Novafora license grant using MIT license.
226 Shakthi Kannan (1):
227    * I have updated the sparse.1 man page including the __bitwise
228      relevant content, and created Documentation/sparse.txt with the
229      complete comparison between __nocast vs __bitwise.
231 Xi Wang (17):
232    * compile-i386: fix use-after-free in func_cleanup()
233    * check missing or duplicate goto labels
234    * fix casting constant to _Bool
235    * fix SIGFPE caused by signed division overflow
236    * sparse, llvm: fix link errors
237    * sparse, llvm: fix phi generation
238    * sparse, llvm: simplify function generation
239    * sparse, llvm: improve pointer arithmetic handling
240    * sparse, llvm: set target specification
241    * sparse, llvm: use LLVM_DEFAULT_TARGET_TRIPLE
242    * sparse, llvm: fix array size
243    * sparse, llvm: cache symbol_type() result
244    * sparse, llvm: fix struct name generation
245    * sparse, llvm: set more data attributes
246    * sparse, llvm: die if error
247    * Fix result type of relational and logical operators
248    * Fix expression type for floating point negation ('!')