sparse - A semantic parser of source files

Distribution: openSUSE 42.2
Repository: openSUSE Update Oss all
Package name: sparse
Package version: 20161117
Package release: 6.1
Package architecture: x86_64
Package type: rpm
Installed size: 518.42 KB
Download size: 146.39 KB
Official Mirror:
Sparse is a semantic parser of source files: it's neither a compiler (although it could be used as a front-end for one) nor is it a preprocessor (although it contains as a part of it a preprocessing phase). It is meant to be a small - and simple - library. Scanty and meager, and partly because of that easy to use. It has one mission in life: create a semantic parse tree for some arbitrary user for further analysis. It's not a tokenizer, nor is it some generic context-free parser. In fact, context (semantics) is what it's all about - figuring out not just what the grouping of tokens are, but what the _types_ are that the grouping implies. Sparse is primarily used in the development and debugging of the Linux kernel.



  • sparse = 20161117-6.1
  • sparse(x86-64) = 20161117-6.1


    Install Howto

    Install sparse rpm package:

    # zypper install sparse


    • /usr/bin/c2xml
    • /usr/bin/cgcc
    • /usr/bin/sparse
    • /usr/share/doc/packages/sparse/FAQ
    • /usr/share/doc/packages/sparse/LICENSE
    • /usr/share/doc/packages/sparse/README
    • /usr/share/man/man1/cgcc.1.gz
    • /usr/share/man/man1/sparse.1.gz


    2017-02-03 - - Update to version 20161117 (boo#1023536): * .gitignore: add cscope and Qt project files * Add default case to switches on enum variables * Fix size calculation of unsized bool array * Do not drop 'nocast' modifier when taking the address. * Fix warning compiling sparse-llvm * sparse: add 'alloc_align' to the ignored attributes * sparse: ignore __assume_aligned__ attribute * sparse: add no_sanitize_address as an ignored attribute * Handle SForced in storage_modifiers * sparse: update __builtin_object_size() prototype - Change _service to disabled to preven accidentally running it - Switch back to naming based on date only

    2016-08-04 - - Switch to the chrisl's repo - Update to version 0.5+git.20160223: * Ignore pure attribute in assignement * Add tests for the builtin INF and nan() functions. * sparse/parse.c: ignore hotpatch attribute * sparse, llvm: compile: skip function prototypes to avoid SIGSEGV * validation/prototype: regression for skipping prototypes * ptrlist: reading deleted items in NEXT_PTR_LIST() * .gitignore: add cscope and Qt project files * Add default case to switches on enum variables * Fix size calculation of unsized bool array * Do not drop 'nocast' modifier when taking the address. - add parse-add-support-for-no_sanitize_-attributes.patch

    2016-05-08 - - Change versioning to include latest release - 0.5+git.20150208 - Enable sparse-llvm - Update dependencies - Small spec file cleanup with spec-cleaner - Make building more verbose

    2015-10-09 - - update to 20150124 * Teach sparse about the __COUNTER__ predefined macro * Make macro expanded string immutable * s390x: add the proper defines for data types

    2015-01-14 - - update to 20141211 * Ptr list sorting should use memmove instead of memcpy * build: allow use of PKG_CONFIG to override pkg-config * compile-i386.c: don't ignore return value of write(2) * parse.c: remove duplicate 'may_alias' ignored_attributes * cgcc: avoid passing a sparse-only option to cc * test-suite: remove bashism to avoid test failures * teach next_designators() use array_element_offset() * cgcc: use $ccom to set $multiarch_dir if not specified * cgcc: use only the cc command to determine $gcc_base_dir * Add support for multiarch system header files * don't run sparse{c,i} tests when sparse-llvm is disabled * Makefile: suppress error message from shell * don't call isdigit/tolower with a char argument * sparse: add 'gnu_inline' to the ignored attributes * Add the __restrict__ keyword * sparse: treat function pointers as pointers to const data * rename -Werror to -Wsparse-error * sparse: Make -Werror turn warnigns into errors * Use LLVM_CONFIG instead of llvm-config in Makefile * sparse-llvm: Fix LLVM 3.5 linker errors * Fix initializers in anonymous structs and unions * Make same_symbol list share the same scope * Fix scoping of extern symbols in block scope * round up the array element size to byte align * sparse: make bits_to_bytes round up instead of down * Minor clean up for option handling * lib.c: skip --param parameters * parse: support c99 [static ...] in abstract array declarators * sparse{i,c}: use LLVM_CONFIG to find llc and lli * build: allow use of LLVM_CONFIG to override llvm-config config script * Fix error at anoymous unions * Add test case for the ioc type check * Add test case for anonymous union initializer * Add test case for extern array * Use any previous initializer to size a symbol * Add warning about duplicate initializers * Support GCC's transparent unions * evaluate: split out implementation of compatible_assignment_types * validation/sizeof-bool: fix broken test case * sparse: Allow override of sizeof(bool) warning * Define __CHAR_BIT__