v0.5.0 (2014-04-01)¶
As a lot of you have already noticed. The sparse 0.5.0 has been tagged and upload to the kernel.org for a while.
One of the most noticeable change of the sparse 0.5.0 is the license. The sparse project has finally move to the MIT license. Thanks for the hard work of Dan Carpenter and Franz Schrober, who contact and collect permissions from the sparse developers. We actually manage to get all developer’s blessing on the MIT license.
This release also has some enhancement matching the latest kernel source annotations. It will reduce the noise level of the sparse warnings.
So there you have it. The official announcement of the sparse 0.5.0.
Chris —
- Al Viro (9):
Fix handling of __func__
Fix tab handling in nextchar_slow()
Fix ,##__VA_ARGS__ kludge
Gentler handling of bitwise warnings in unary operations
simplify handling of newline/whitespace flags in expand()
fix handling of -include
massage handling of wide string literals/character constants in tokenizer
switch to delayed handling of escape sequences
L ## ‘a’ is valid; so’s L ## “a”
- Benjamin Herrenschmidt (1):
sparse, llvm: Fix varargs functions
- Christopher Li (19):
Limit usage of g++ to llvm related programs.
Merge branch ‘sparse-llvm’ of git://github.com/penberg/sparse-llvm.git
Adding default for m64/m32 handle
Merge branch ‘for-chris’ of git://github.com/penberg/sparse-llvm
Merge branch ‘llvm/core’ of github.com:penberg/sparse-llvm
remove weak define x86_64
Merge git://git.kernel.org/pub/scm/linux/kernel/git/viro/sparse into marge
Clean up some test case error.
Fix segfault cause by fucntion without ident.
Get rid of gcc warning about enum values
Larger buffer size for token concatenation
Proper variable length array warning
Allow forced attribute in function argument
Trivial: Remove redundant Makefile variable
Merge branch ‘llvmcore’
Merge branch ‘Novafora’ of git://git.zytor.com/users/hpa/sparse/sparse into license
Sparse 0.5.0 rc1
Fix make dist failure
Sparse 0.5.0
- Emilio G. Cota (1):
gitignore: add ‘version.h’
- Ethan Jackson (1):
sparse: Add ‘leaf’ to ignored attributes.
- Franz Schrober (5):
Revert “Update the information in README about using the library.”
Revert “Fix mistaken comparison that becomes a no-op.”
sparse: Relicense under the MIT license
FAQ: Remove outdated sections about the license
sparse: Also check bit_offset when checking implicit casts
- Frederic Crozat (1):
Add __builtin_stpcpy, __sync_synchronize, __sync_bool_compare_and_swap to declare_builtin_functions
- James Westby (1):
Update the information in README about using the library.
- Jan Pokorný (2):
unssa: track use of newly added pseudo
simplify: conservative handling of casts with pointers
- Jeff Garzik (15):
sparse, llvm: if-else code generation
sparse-llvm: OP_SEL
sparse-llvm: OP_SWITCH
sparse-llvm: OP_LOAD
sparse-llvm OP_PHISOURCE: replace copy with target=src pointer operation
sparse, llvm: replace FIXME comment with assert(), following
- existing style
sparse, llvm: implement OP_CALL
sparse, llvm: move OP_PHI code from switch statement to separate function
sparse, llvm: move OP_CAST code to separate func. support FP casts.
sparse, llvm: create helper for obtaining instruction’s type
sparse, llvm: store module-local functions on function reference list
sparse, llvm: move OP_COPY support to separate function. Add FP support.
sparse, llvm: support OP_STORE
sparse, llvm: Fix loops, by properly handling OP_PHI forward references
sparse, llvm: add loop testcase
- Jeff Layton (1):
sparse: add __builtin_va_arg_pack() and __builtin_va_arg_pack_len()
- Joe Perches (1):
There’s no current way to know the version of sparse. Add –version to see it.
- Jonathan Neuschäfer (9):
FAQ: update the website address and call it Wiki
ptrlist.c: fix a typo in a comment
sparse, llvm: ‘Verify’ the LLVM module before writing it
sparse, llvm: convert the condition of branch/select to bool
sparse, llvm: Fix type of loaded values
sparse, llvm: Fix resulting type of store address calculations
sparse, llvm: de-duplicate load/store address calculation code
sparse, llvm: base load/store address type on insn_symbol_type()
sparse, llvm: add a struct access test case
- Josh Triplett (2):
Define __SIZEOF_POINTER__
Support #pragma once
- KOSAKI Motohiro (2):
sparse: Add ‘__vector_size__’ to ignored attributes
sparse: Add ‘error’ to ignored attributes
- Kamil Dudka (2):
cse: treat PHI-nodes as other instructions
cse: update PHI users when throwing away an instruction
- Kim Phillips (2):
sparse: add built-in byte swap identifiers
sparse: add built-in atomic memory access identifiers
- Linus Torvalds (1):
sparse, llvm: Make function declaration accessible to backend
- Masatake YAMATO (3):
Warn about initialization of a char array with a too long
- constant C string.
Test case for -Winit-cstring option
Add description for -Winit-cstring option
- Mauro Dreissig (1):
Fix wrong array size expression
- Pekka Enberg (69):
sparse, llvm: Initial commit
sparse, llvm: Fix assert() in sparse code
sparse, llvm: Fix global variable initialization
sparse, llvm: Fix ‘sparsec’ when it’s not in PATH
llvm, sparse: Separate entry and exit basic blocks
sparse, llvm: Add switch statement to output_insn()
sparse, llvm: OP_RET/PSEUDO_VAL code generation
sparse, llvm: Add support for OP_RET/PSEUDO_ARG
sparse, llvm: Introduce ‘struct function’ to clean up code
sparse, llvm: Add output_op_binary() stub
sparse, llvm: Implement OP_ADD
sparse, llvm: Add support for more binary ops
sparse, llvm: Implement some binary comparison ops
sparse, llvm: Move binop tests to validation/backend
sparse, llvm: Implement OP_CAST
sparse, llvm: Floating point support for binops
sparse, llvm: Reorganize code generation tests
sparse, llvm: Bitwise not operator codegen
sparse, llvm: Kill ifdef’d unssa() call
sparse, llvm: Kill debugging code
Merge pull request #1 from jgarzik/hacks
Merge pull request #2 from jgarzik/hacks
sparse, llvm: Warn the user when we fall back to GCC
sparse, llvm: Code generation for string constants
sparse, llvm: Cleanup output_data()
sparse, llvm: Fix OP_CAST to use zero-extend
sparse, llvm: Improve sparsec front-end
sparse, llvm: Fix PSEUDO_OP code generation
sparse, llvm: Don’t redefine module local functions
Revert “sparse, llvm: Don’t redefine module local functions”
sparse, llvm: Fix code generation for casts
sparse, llvm: Fix pseudo_type() for PSEUDO_ARG
Merge pull request #3 from jgarzik/hacks
Merge branch ‘master’ of github.com:penberg/sparse-llvm
llvm, sparse: Fix symbol_is_fp_type() goof
Merge pull request #4 from jgarzik/hacks
sparse, llvm: Fix code generation for ‘long double’ data type
sparse, llvm: Add support for struct types
sparse, llvm: Add support for symbol initializers
sparse: Bump up sizeof(_Bool) to 8 bits
sparse, llvm: Add support for logical ops
sparse, llvm: Fix ‘void *’ pointer code generation
sparse, llvm: Use new LLVM type system API for structs
sparse, llvm: Fix struct code generation
sparse, llvm: Fix symbol_type() for bitfields and enums
sparse, llvm: Add support for array types
sparse, llvm: Add support for union types
sparse, llvm: Make ‘sparsec’ error handling more robust
sparse, llvm: Function pointer code generation
sparse, llvm: Fix symbol initializer code generation
sparse, llvm: Fix ‘extern’ symbol code generation
sparse, llvm: Make llc output to stdout in sparsec
sparse, llvm: Pointer cast code generation
sparse, llvm: OP_SET_B and OP_SET_A code generation
sparse, llvm: More comparison ops code generation
sparse, llvm: Simplify comparison op code generation
sparse, llvm: FP comparison op code generation
Merge pull request #6 from jgarzik/hacks
sparse, llvm: Don’t fail the build if LLVM is too old
sparse, llvm: Use LLVMInt1Type() in sym_basetype_type()
sparse, llvm: Add test case for <stdbool.h> type
Revert “sparse: Bump up sizeof(_Bool) to 8 bits”
sparse, llvm: Add _Bool to cast validation test
sparse, llvm: Simplify output_data() type logic
sparse, llvm: Fix string initializer code generation
sparse, llvm: Fix global string access code generation
sparse, llvm: Fix SIGSEGV for extern symbols
sparse, llvm: Fix ‘void’ return type code generation
sparse, llvm: Use LLVM_HOSTTRIPLE
- Ramsay Jones (2):
char.c: Fix parsing of escapes
symbol.c: Set correct size of array from parenthesized string initializer
- Randy Dunlap (1):
sparse patch v2: add noclone as an ignored attribute
- Robert Bedichek (1):
Novafora license grant using MIT license.
- Shakthi Kannan (1):
I have updated the sparse.1 man page including the __bitwise relevant content, and created Documentation/sparse.txt with the complete comparison between __nocast vs __bitwise.
- Xi Wang (17):
compile-i386: fix use-after-free in func_cleanup()
check missing or duplicate goto labels
fix casting constant to _Bool
fix SIGFPE caused by signed division overflow
sparse, llvm: fix link errors
sparse, llvm: fix phi generation
sparse, llvm: simplify function generation
sparse, llvm: improve pointer arithmetic handling
sparse, llvm: set target specification
sparse, llvm: use LLVM_DEFAULT_TARGET_TRIPLE
sparse, llvm: fix array size
sparse, llvm: cache symbol_type() result
sparse, llvm: fix struct name generation
sparse, llvm: set more data attributes
sparse, llvm: die if error
Fix result type of relational and logical operators
Fix expression type for floating point negation (‘!’)