1v0.5.0 (2014-04-01) 2=================== 3 4As a lot of you have already noticed. The sparse 0.5.0 has been 5tagged and upload to the kernel.org for a while. 6 7One of the most noticeable change of the sparse 0.5.0 is the 8license. The sparse project has finally move to the MIT license. 9Thanks for the hard work of Dan Carpenter and Franz Schrober, 10who contact and collect permissions from the sparse developers. 11We actually manage to get *all* developer's blessing on the MIT 12license. 13 14This release also has some enhancement matching the latest 15kernel source annotations. It will reduce the noise level of the sparse 16warnings. 17 18So there you have it. The official announcement of the sparse 0.5.0. 19 20Chris 21--- 22 23Al 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" 33 34Benjamin Herrenschmidt (1): 35 * sparse, llvm: Fix varargs functions 36 37Christopher 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 58 59Emilio G. Cota (1): 60 * gitignore: add 'version.h' 61 62Ethan Jackson (1): 63 * sparse: Add 'leaf' to ignored attributes. 64 65Franz 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 71 72Frederic Crozat (1): 73 * Add __builtin_stpcpy, __sync_synchronize, __sync_bool_compare_and_swap 74 to declare_builtin_functions 75 76James Westby (1): 77 * Update the information in README about using the library. 78 79Jan Pokorný (2): 80 * unssa: track use of newly added pseudo 81 * simplify: conservative handling of casts with pointers 82 83Jeff 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 90existing 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 100 101Jeff Layton (1): 102 * sparse: add __builtin_va_arg_pack() and __builtin_va_arg_pack_len() 103 104Joe Perches (1): 105 * There's no current way to know the version of sparse. Add --version to see it. 106 107Jonathan 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 117 118Josh Triplett (2): 119 * Define __SIZEOF_POINTER__ 120 * Support #pragma once 121 122KOSAKI Motohiro (2): 123 * sparse: Add '__vector_size__' to ignored attributes 124 * sparse: Add 'error' to ignored attributes 125 126Kamil Dudka (2): 127 * cse: treat PHI-nodes as other instructions 128 * cse: update PHI users when throwing away an instruction 129Kim Phillips (2): 130 * sparse: add built-in byte swap identifiers 131 * sparse: add built-in atomic memory access identifiers 132 133Linus Torvalds (1): 134 * sparse, llvm: Make function declaration accessible to backend 135 136Masatake YAMATO (3): 137 * Warn about initialization of a char array with a too long 138constant C string. 139 * Test case for -Winit-cstring option 140 * Add description for -Winit-cstring option 141 142Mauro Dreissig (1): 143 * Fix wrong array size expression 144 145Pekka 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 215 216Ramsay Jones (2): 217 * char.c: Fix parsing of escapes 218 * symbol.c: Set correct size of array from parenthesized string initializer 219 220Randy Dunlap (1): 221 * sparse patch v2: add noclone as an ignored attribute 222 223Robert Bedichek (1): 224 * Novafora license grant using MIT license. 225 226Shakthi 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. 230 231Xi 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 ('!') 249