All of lore.kernel.org
 help / color / mirror / Atom feed
* Sparse release v0.5.1-rc1
@ 2017-06-12 17:05 Christopher Li
  2017-06-13  4:58 ` Luc Van Oostenryck
  0 siblings, 1 reply; 8+ messages in thread
From: Christopher Li @ 2017-06-12 17:05 UTC (permalink / raw)
  To: Linux-Sparse, Luc Van Oostenryck

Hi,


I know that sparse has due for a new release for very long time.
So here it is. I take what is in the spase-next and put them into
a branch "sparse-0.5.1-rc1".

https://git.kernel.org/pub/scm/devel/sparse/sparse.git/log/?h=sparse-0.5.1-rc1

Thanks to Luc Van Oostenryck who contribute a great deal
of the high quality patches. Sparse should behave much better
when checking the recent kernel source code.

Please give the RC1 a good test. Report any problem you found.

Luc, do you have another other bug fix low risk patches you want to
add in this release? I want to do a quick release then go back to merge
your other changes.

Chris


Aaro Koskinen (1):
      build: allow use of PKG_CONFIG to override pkg-config

Andy Shevchenko (1):
      lib.c: skip --param parameters

Ard Biesheuvel (2):
      sparse: treat function pointers as pointers to const data
      Ignore pure attribute in assignement

Azat Khuzhin (2):
      sparse, llvm: compile: skip function prototypes to avoid SIGSEGV
      validation/prototype: regression for skipping prototypes

Christian Borntraeger (1):
      s390x: add the proper defines for data types

Christopher Li (8):
      Minor clean up for option handling
      round up the array element size to byte align
      Make same_symbol list share the same scope
      rename -Werror to -Wsparse-error
      teach next_designators() use array_element_offset()
      Ptr list sorting should use memmove instead of memcpy
      Make macro expanded string immutable
      Fix warning compiling sparse-llvm

Cody P Schafer (3):
      build: allow use of LLVM_CONFIG to override llvm-config config script
      sparse{i,c}: use LLVM_CONFIG to find llc and lli
      parse: support c99 [static ...] in abstract array declarators

Dan Carpenter (1):
      ptrlist: reading deleted items in NEXT_PTR_LIST()

Daniel Wagner (1):
      parse: Add comment to struct statement

Edward Cree (1):
      Allow casting to a restricted type if !restricted_value

Emilio G. Cota (1):
      Define __CHAR_BIT__

Emily Maier (2):
      linearize: Emit C99 declarations correctly
      validation: Check C99 for loop variables

Hans Verkuil (3):
      Add test case for extern array
      Add test case for anonymous union initializer
      Add test case for the ioc type check

Heiko Carstens (1):
      sparse/parse.c: ignore hotpatch attribute

Jeff Layton (2):
      sparse: make bits_to_bytes round up instead of down
      Handle SForced in storage_modifiers

Joe Perches (1):
      sparse: Allow override of sizeof(bool) warning

Johannes Berg (1):
      implement constant-folding in __builtin_bswap*()

John Keeping (3):
      validation/sizeof-bool: fix broken test case
      evaluate: split out implementation of compatible_assignment_types
      Support GCC's transparent unions

Lance Richardson (3):
      sparse: ignore __assume_aligned__ attribute
      sparse: update __builtin_object_size() prototype
      sparse: add support for _Static_assert

Linus Torvalds (5):
      Add warning about duplicate initializers
      Use any previous initializer to size a symbol
      Fix error at anoymous unions
      Fix scoping of extern symbols in block scope
      Fix initializers in anonymous structs and unions

Luc Van Oostenryck (193):
      Teach sparse about the __COUNTER__ predefined macro
      Fix size calculation of unsized bool array
      Do not drop 'nocast' modifier when taking the address.
      fix mixup in "Handle SForced in storage_modifiers"
      Fix type checking of variadic functions
      add missing #include "char.h" to char.c
      make 'ignored_attributes[]' staticLuc Van Oostenryck
      cleanup: remove evaluate_arguments()'s unused argument
      Warn on unknown attributes instead of throwing errors
      Remove unneeded variable in integer_promotion()
      fix discarded label statement
      add test case for builtin bswap with constant args
      make ptrlist walking against robust against empty blocks
      let "compile" not crash on bools
      give comparable label's names to basic blocks
      OP_SWITCH should use 'insn->cond' instead of 'insn->target'
      remove unused field 'multijump' in struct instruction
      storage should not be inherited by pointers
      testsuite: simplify test function-pointer-inheritance
      use a shorter name for function-pointer-modifier-inheritance.c
      testsuite: test modifiers preserved by '&' operator
      testsuite: test modifiers preserved by 'typeof()'
      some modifiers need to be preserved by 'typeof()'
      Update maintainers in the manpage
      cgcc should not define non-reserved identifiers
      recursive phi_defines cannot happen
      fix missing element in types declaration
      add support for __int128
      fix typing error in compound assignment
      llvm: fix typing when comparing to a constant
      llvm: remove unneeded OP_COPY support
      fix cast to bool
      unssa: do not try to update liveness
      unssa: simplify rewrite of OP_PHISOURCE
      unssa: try to avoid some OP_PHI copies
      unssa: eliminate trivial phisrc copies
      unssa: update comment about the unneeded copies
      volatile loads must not be simplified
      fix superfluous phisrc
      fix phisrc mixup
      missing load simplification
      fix value of label statement
      C11: teach sparse about '_Thread_local'
      C11: teach sparse about '_Noreturn'
      C11: teach sparse about '_Alignof()'
      C11: teach sparse about '_Alignas()'
      C11: teach sparse about '--std={c11,gnu11}'
      fix cast's target type info
      fix crash while testing between conditional & unconditional OP_BR
      kill uses of replaced instructions
      fix killing OP_PHI instructions
      fix killing OP_CAST & friends
      fix killing OP_SELECT
      fix killing OP_COMPUTEDGOTO
      explicitely ignore killing OP_ENTRY
      cleanup kill_instruction()
      fix conditional context test case with void
      add helper: is_scalar_type()
      validate expression's type in conditionals
      remove unused arg in uses/defs functions
      add testcase for wrong early escape conversion
      warn on unknown escapes after preprocessing
      remove 'Escape' from token character class
      fix killing OP_SETVAL instructions
      define __LP64__ & _LP64 if arch_m64 is enabled
      add an helper for common predefined macros
      define __LONG_MAX__ & __SIZEOF_POINTER__
      move OP_MUL simplification in a separate function
      simplify '(x / 1)' to 'x'
      simplify '(x * -1)' to '-x'
      simplify '(x / -1)' to '-x' (but only for signed division)
      simplify '(x % 1)' into '0'
      simplify '~(~x)' and '-(-x)' to 'x'
      simplify '(x || 1)' to '1'
      simplify '(x op x)' to '0', '1' or 'x'
      add warning option '-Wtautological-compare'
      simplify comparisons followed by an equality test against 0 or 1
      simplify '(x || x)' and '(x && x)'
      add support for LLP64 arch
      move evaluation & expansion of builtins in a separate file
      let identical symbols share their evaluate/expand methods
      expand __builtin_bswap*() with constant args
      testsuite: give a proper name to the 'binary-constant' test
      testsuite: make tests known to fail effectively fail
      testsuite: simplify the ioc-typecheck case
      testsuite: add a simple test for -Wenum-mismatch
      testsuite: add tag to ignore the output/error
      testsuite: report as error tests known to fail but which succeed
      allow to launch the test suite from the project root dir
      testsuite: check patterns presence or absence in output
      testsuite: add some selfchecking
      testsuite: check the nbr of times a pattern should be present
      testsuite: use 'error' instead of 'info' for successful tests
known to fail
      testsuite: get 'check-known-to-fail' earlier
      testsuite: allow quieter error reporting
      testsuite: quieter error reporting for 'known-to-fail'
      cleanup: there is no 'struct phi' to allocate
      remove unused field 'multijmp' in struct statement
      remove unused field 'goto_bb' in struct statement
      fix show-parse()'s labels
      add killing of OP_SLICEs
      add killing of OP_PHISOURCEs
      add helper kill_use_list()
      fix killing of OP_PHIs
      fix clear_phi(), replace it by kill_instruction()
      remove unused clear_phi()
      fix killing of otherwise not-handled instructions
      kill_instruction() may need to be forced or not
      add killing of pure calls
      fix killing OP_CALL via pointers
      add killing of non-volatile loads
      add killing of stores
      fix killing of rewritten loads
      use kill_instruction() when killing an OP_PHI during CSE
      use kill_instruction() when killing any instructions during CSE
      fix OP_PHI usage in try_to_simplify_bb()
      simplify float-to-float casts that doesn't change size
      CSE: add test cases for comparisons duality
      CSE: use commutativity to identify equivalent instructions
      CSE: avoid hashing removed instructions
      fix expansion cost of pure functions
      add missing braces around FOR_EACH_PTR loop
      make -Wbitwise operational again
      use option: '-Woverride-init'
      add test case for warnings about overlapping initializers
      allow to warn on all overlapping initializers
      fix checking of overlapping initializer
      ignore whole-range overlapping initializer
      fix usage in simplify_seteq_setne()
      fix size of loaded bitfields
      split OP_BR between unconditional & conditional: OP_CBR
      remove unused helper is_branch_goto()
      replace test for c99 for-loop initializers
      add test case for scope of C99 for-loop declarations
      add test cases for storage of c99 for-loop declarations
      add an optional validation method to external_declaration()
      check the storage of C99 for-loop initializers
      move 'extern with initializer' validation after the validate method
      use VOID instead of directly using &void_pseudo
      teach sparse about -Waddress
      add is_func_type()
      warn if testing the address of a function
      add is_array_type()
      warn if testing the address of an array
      fix evaluation of a function or array symbol in conditionals
      fix is_scalar_type()
      fix test for cast to bool on 32bit machines
      predefine __INT_MAX__ and friends
      predefine __SIZEOF_INT__ & friends
      fix test validation/div.c
      fix cast to pointer to floating-point
      do not depends on limits.h to test __CHAR_BIT__
      fix expansion of integers to floats
      avoid crash with test-linearize -vv
      fix OP_PHI usage in try_to_simplify_bb(), correctly
      be more careful with concat_user_list()
      Merge branches 'sent/float-expand-v2', 'sent/fix-kill-ttsb-v2',
'sent/fix-cond-address' and 'careful-concat-user-list' into tip
      avoid useless warning for 'bool <- restricted type' conversion
      introduce REPEAT_CFG_CLEANUP
      let kill_unreachable_bbs() clear REPEAT_CFG_CLEANUP
      fix: kill unreachable BBs after killing a child
      ignore VOID when trying to if-convert phi-nodes
      fix boolean context for OP_AND_BOOL & OP_OR_BOOL
      fix missing reload
      keyword: add test case for reserved '_Static_assert'
      keyword: regroup the [reserved] keywords
      keyword: explicitly add C99 & C11 keywords
      keyword: add more reserved keywords to the test case
      keyword: add a comment about NS_TYPEDEF & reserved keywords
      keyword: no pre-declaration needed for attribute names
      Merge branches 'quiets-bool-cast-restricted-v2',
'keyword-cleanup-v2', 'not-so-crazy-v2' and
'ignore-void-if-convert-v3' into tip
      add get_<allocator>_stats()
      add show_allocation_stats()
      add helper handle_simple_switch()
      teach sparse how to handle '-fmem-report'
      use -fmem-report to report allocation stats
      testsuite: cleanup result files
      fix: kill old branch in insert_branch()
      returns the correct type when evaluating NULL
      remove bit_size & bit_offset from struct access_data
      add test case for linearize_initializer() of bitfields
      fix implicit zero initializer.
      remove alignment from struct access_data
      remove origval from struct access_data
      add support for a new flag: -fdump-linearize[=only]
      define ident_list
      teach sparse how to dump macro definitions
      fix hardcoded size of wide chars
      avoid to redefine __INT_MAX__ and friends
      fix definition of __SCHAR_MAX__ & friends
      teach sparse how to handle -dD flag
      let -dD report macro definitions
      Merge branches 'dump-macros-v2', 'fix-predefined-size',
'fix-bool-context', 'fix-missing-reload', 'fix-insert-branch',
'fix-NULL-type', 'testsuite-clean', 'fix-bitfield-init-v3' and
'fdump-linearize' into tip

Michael Stefaniuc (3):
      Add the __builtin functions needed for INFINITY and nan().
      Add a define for __builtin_ms_va_copy()
      Add tests for the builtin INF and nan() functions.

Oleg Nesterov (3):
      dissect: teach do_expression() to handle EXPR_OFFSETOF
      dissect: teach do_initializer() to handle the nested EXPR_IDENTIFIER's
      dissect: s/mode_t/usage_t/ in report_member()

Omar Sandoval (1):
      sparse-llvm: Fix LLVM 3.5 linker errors

Pavel Roskin (1):
      Use LLVM_CONFIG instead of llvm-config in Makefile

Ramsay Jones (13):
      Add the __restrict__ keyword
      sparse: add 'gnu_inline' to the ignored attributes
      don't call isdigit/tolower with a char argument
      Makefile: suppress error message from shell
      don't run sparse{c,i} tests when sparse-llvm is disabled
      Add support for multiarch system header files
      cgcc: use only the cc command to determine $gcc_base_dir
      cgcc: use $ccom to set $multiarch_dir if not specified
      test-suite: remove bashism to avoid test failures
      cgcc: avoid passing a sparse-only option to cc
      parse.c: remove duplicate 'may_alias' ignored_attributes
      compile-i386.c: don't ignore return value of write(2)
      sparse: add 'alloc_align' to the ignored attributes

Rui Teng (1):
      sparse: add no_sanitize_address as an ignored attribute

Thomas Graf (1):
      sparse: Make -Werror turn warnigns into errors

Tony Camuso (2):
      .gitignore: add cscope and Qt project files
      Add default case to switches on enum variables

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-12 17:05 Sparse release v0.5.1-rc1 Christopher Li
@ 2017-06-13  4:58 ` Luc Van Oostenryck
  2017-06-13 15:08   ` Ramsay Jones
  2017-06-13 17:54   ` Christopher Li
  0 siblings, 2 replies; 8+ messages in thread
From: Luc Van Oostenryck @ 2017-06-13  4:58 UTC (permalink / raw)
  To: Christopher Li; +Cc: Linux-Sparse

On Mon, Jun 12, 2017 at 10:05:27AM -0700, Christopher Li wrote:
> Hi,
> 
> 
> I know that sparse has due for a new release for very long time.
> So here it is.

Great!

> I take what is in the spase-next and put them into
> a branch "sparse-0.5.1-rc1".
> 
> https://git.kernel.org/pub/scm/devel/sparse/sparse.git/log/?h=sparse-0.5.1-rc1
> 
> Thanks to Luc Van Oostenryck who contribute a great deal
> of the high quality patches. Sparse should behave much better
> when checking the recent kernel source code.
> 
> Please give the RC1 a good test. Report any problem you found.

I really think that for this it would be better to not have
this rc1 in a separate branch but instead a simple tag in
the master branch, like most projects do.
A lot of people are willing to take the last version of the
master branch but won't bother to checkout another one.
It also conveys the message that this rc1 may be unstable and
too risky for be part of the master branch. It's also not good
for distros and environments which do automatic build, daily
snapshots and such as they won't use another branch.

> Luc, do you have another other bug fix low risk patches you want to
> add in this release? I want to do a quick release then go back to merge
> your other changes.

Nothing really important but I would like to have the following
ones in the release:
- patch "avoid warning on explicit 'bool <- restricted' casts" 
  I would have liked an Acked-by from Al Viro on this one but
  he is quite busy.
- patch "add support for -Wmemcpy-max-count" & friends
  This patch will likely be used for the git tree
- patch "finer control over error vs. warnings"
  which can reveal potential problems which were hidden
- patch "teach cgcc about OSX aka darwin"
- patch "ret-void: warn for implicit type"
- series "testsuite speedup"

I'll send a pull request tomorrow.

-- Luc 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-13  4:58 ` Luc Van Oostenryck
@ 2017-06-13 15:08   ` Ramsay Jones
  2017-06-13 16:05     ` Luc Van Oostenryck
  2017-06-13 17:54   ` Christopher Li
  1 sibling, 1 reply; 8+ messages in thread
From: Ramsay Jones @ 2017-06-13 15:08 UTC (permalink / raw)
  To: Luc Van Oostenryck, Christopher Li; +Cc: Linux-Sparse



On 13/06/17 05:58, Luc Van Oostenryck wrote:
> On Mon, Jun 12, 2017 at 10:05:27AM -0700, Christopher Li wrote:
>> Hi,
>>
>>
>> I know that sparse has due for a new release for very long time.
>> So here it is.
> 
> Great!
> 
>> I take what is in the spase-next and put them into
>> a branch "sparse-0.5.1-rc1".
>>
>> https://git.kernel.org/pub/scm/devel/sparse/sparse.git/log/?h=sparse-0.5.1-rc1
>>
>> Thanks to Luc Van Oostenryck who contribute a great deal
>> of the high quality patches. Sparse should behave much better
>> when checking the recent kernel source code.
>>
>> Please give the RC1 a good test. Report any problem you found.
> 
> I really think that for this it would be better to not have
> this rc1 in a separate branch but instead a simple tag in
> the master branch, like most projects do.
> A lot of people are willing to take the last version of the
> master branch but won't bother to checkout another one.
> It also conveys the message that this rc1 may be unstable and
> too risky for be part of the master branch. It's also not good
> for distros and environments which do automatic build, daily
> snapshots and such as they won't use another branch.
> 
>> Luc, do you have another other bug fix low risk patches you want to
>> add in this release? I want to do a quick release then go back to merge
>> your other changes.
> 
> Nothing really important but I would like to have the following
> ones in the release:
> - patch "avoid warning on explicit 'bool <- restricted' casts" 
>   I would have liked an Acked-by from Al Viro on this one but
>   he is quite busy.
> - patch "add support for -Wmemcpy-max-count" & friends
>   This patch will likely be used for the git tree

Luc, I have not actually tested these patches (I was waiting for
something I could git-fetch). I have no doubt they are good, but
it just occurred to me that a patch may be missing. I don't recall
seeing a change to cgcc to filter-out the new, sparse only, options.
ie. they need to be added to the check_only_option subroutine (#102).

> - patch "finer control over error vs. warnings"
>   which can reveal potential problems which were hidden
> - patch "teach cgcc about OSX aka darwin"
> - patch "ret-void: warn for implicit type"
> - series "testsuite speedup"
> 
> I'll send a pull request tomorrow.
> 
> -- Luc 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-13 15:08   ` Ramsay Jones
@ 2017-06-13 16:05     ` Luc Van Oostenryck
  2017-06-14  0:00       ` Ramsay Jones
  0 siblings, 1 reply; 8+ messages in thread
From: Luc Van Oostenryck @ 2017-06-13 16:05 UTC (permalink / raw)
  To: Ramsay Jones; +Cc: Christopher Li, Linux-Sparse

On Tue, Jun 13, 2017 at 04:08:23PM +0100, Ramsay Jones wrote:
> Luc, I have not actually tested these patches (I was waiting for
> something I could git-fetch). I have no doubt they are good, but

This -rc1 is in fact the parent of the mem-max-count mini-series,
so you tested it already a bit :)

> it just occurred to me that a patch may be missing. I don't recall
> seeing a change to cgcc to filter-out the new, sparse only, options.
> ie. they need to be added to the check_only_option subroutine (#102).

Indeed, it's really great that you thought about it
because since I don't use cgcc myself, I would never
have thought about updated it.

I'll add what is needed and check if anything else is
missing there.

Thank you very much to bringing this to my attention.
-- Luc

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-13  4:58 ` Luc Van Oostenryck
  2017-06-13 15:08   ` Ramsay Jones
@ 2017-06-13 17:54   ` Christopher Li
  2017-06-14  2:05     ` Luc Van Oostenryck
  1 sibling, 1 reply; 8+ messages in thread
From: Christopher Li @ 2017-06-13 17:54 UTC (permalink / raw)
  To: Luc Van Oostenryck; +Cc: Linux-Sparse

On Mon, Jun 12, 2017 at 9:58 PM, Luc Van Oostenryck
<luc.vanoostenryck@gmail.com> wrote:
>
> I really think that for this it would be better to not have
> this rc1 in a separate branch but instead a simple tag in
> the master branch, like most projects do.

Done. I pushed to master with tag "v0.5.1-rc1".

> Nothing really important but I would like to have the following
> ones in the release:
> - patch "avoid warning on explicit 'bool <- restricted' casts"
>   I would have liked an Acked-by from Al Viro on this one but
>   he is quite busy.
> - patch "add support for -Wmemcpy-max-count" & friends
>   This patch will likely be used for the git tree
> - patch "finer control over error vs. warnings"
>   which can reveal potential problems which were hidden
> - patch "teach cgcc about OSX aka darwin"
> - patch "ret-void: warn for implicit type"
> - series "testsuite speedup"
>
> I'll send a pull request tomorrow.

Sounds good. I think I have review most of them already.
It should be a easy pull. I will create a RC2 after I pull from you.

Thanks for the great work.

Chris

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-13 16:05     ` Luc Van Oostenryck
@ 2017-06-14  0:00       ` Ramsay Jones
  2017-06-14  2:29         ` Luc Van Oostenryck
  0 siblings, 1 reply; 8+ messages in thread
From: Ramsay Jones @ 2017-06-14  0:00 UTC (permalink / raw)
  To: Luc Van Oostenryck; +Cc: Christopher Li, Linux-Sparse



On 13/06/17 17:05, Luc Van Oostenryck wrote:
> On Tue, Jun 13, 2017 at 04:08:23PM +0100, Ramsay Jones wrote:
>> Luc, I have not actually tested these patches (I was waiting for
>> something I could git-fetch). I have no doubt they are good, but
> 
> This -rc1 is in fact the parent of the mem-max-count mini-series,
> so you tested it already a bit :)

Err, ... I don't see those patches as part of the sparse-0.5.1-rc1
branch (or v0.5.1-rc1/master, ...).

>> it just occurred to me that a patch may be missing. I don't recall
>> seeing a change to cgcc to filter-out the new, sparse only, options.
>> ie. they need to be added to the check_only_option subroutine (#102).
> 
> Indeed, it's really great that you thought about it
> because since I don't use cgcc myself, I would never
> have thought about updated it.

I use it all the time (it's really the main front-end to sparse!)
with '-no-compile'. In this case, since it doesn't call gcc, the
lack of this 'options filter' does not matter. However, I'm aware
that many people use cgcc as a proxy for gcc (which is the _intent_,
after all), so this needs to be fixed. (So that 'make CC=cgcc ...'
continues to works).

> I'll add what is needed and check if anything else is
> missing there.

Yeah, it is not just _these_ new options; I think there have been
several 'sparse only' options added 'recently' which have not been
filtered out in cgcc. (again only 'sparse only' options need to be
added to the regex in the check_only_option subroutine).

ATB,
Ramsay Jones


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-13 17:54   ` Christopher Li
@ 2017-06-14  2:05     ` Luc Van Oostenryck
  0 siblings, 0 replies; 8+ messages in thread
From: Luc Van Oostenryck @ 2017-06-14  2:05 UTC (permalink / raw)
  To: Christopher Li; +Cc: Linux-Sparse

On Tue, Jun 13, 2017 at 10:54:45AM -0700, Christopher Li wrote:
> On Mon, Jun 12, 2017 at 9:58 PM, Luc Van Oostenryck
> <luc.vanoostenryck@gmail.com> wrote:
> >
> > I really think that for this it would be better to not have
> > this rc1 in a separate branch but instead a simple tag in
> > the master branch, like most projects do.
> 
> Done. I pushed to master with tag "v0.5.1-rc1".

Thanks.
 
> > Nothing really important but I would like to have the following
> > ones in the release:
> > - patch "avoid warning on explicit 'bool <- restricted' casts"
> >   I would have liked an Acked-by from Al Viro on this one but
> >   he is quite busy.
> > - patch "add support for -Wmemcpy-max-count" & friends
> >   This patch will likely be used for the git tree
> > - patch "finer control over error vs. warnings"
> >   which can reveal potential problems which were hidden
> > - patch "teach cgcc about OSX aka darwin"
> > - patch "ret-void: warn for implicit type"
> > - series "testsuite speedup"
> >
> > I'll send a pull request tomorrow.
> 
> Sounds good. I think I have review most of them already.
Not the 1st & 3rd here but nothing very special:
- 1st is the following of Al Viro's suggestion for the implicit case
  which now also do the same change for the explicit case
- 3rd untangle max_warnings and the fatc that an error has occurred.

> It should be a easy pull. I will create a RC2 after I pull from you.
Good.

-- Luc

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Sparse release v0.5.1-rc1
  2017-06-14  0:00       ` Ramsay Jones
@ 2017-06-14  2:29         ` Luc Van Oostenryck
  0 siblings, 0 replies; 8+ messages in thread
From: Luc Van Oostenryck @ 2017-06-14  2:29 UTC (permalink / raw)
  To: Ramsay Jones; +Cc: Christopher Li, Linux-Sparse

On Wed, Jun 14, 2017 at 01:00:02AM +0100, Ramsay Jones wrote:
> 
> 
> On 13/06/17 17:05, Luc Van Oostenryck wrote:
> > On Tue, Jun 13, 2017 at 04:08:23PM +0100, Ramsay Jones wrote:
> >> Luc, I have not actually tested these patches (I was waiting for
> >> something I could git-fetch). I have no doubt they are good, but
> > 
> > This -rc1 is in fact the parent of the mem-max-count mini-series,
> > so you tested it already a bit :)
> 
> Err, ... I don't see those patches as part of the sparse-0.5.1-rc1
> branch (or v0.5.1-rc1/master, ...).

No, they will be part of the -rc2. I just meant that they were
built on top of what is now the -rc1.
 
> >> it just occurred to me that a patch may be missing. I don't recall
> >> seeing a change to cgcc to filter-out the new, sparse only, options.
> >> ie. they need to be added to the check_only_option subroutine (#102).
> > 
> > Indeed, it's really great that you thought about it
> > because since I don't use cgcc myself, I would never
> > have thought about updated it.
> 
> I use it all the time (it's really the main front-end to sparse!)
> with '-no-compile'. In this case, since it doesn't call gcc, the
> lack of this 'options filter' does not matter. However, I'm aware
> that many people use cgcc as a proxy for gcc (which is the _intent_,
> after all), so this needs to be fixed. (So that 'make CC=cgcc ...'
> continues to works).

For people that use it as gcc's proxy, they normally wouldn't
feed it with sparse-only options, so it should also be OK.

Otherwise, I'm a bit curious to know the advantage to using cgcc
as a front-end for sparse. I'm aware of the need to have things
like __LONG_MAX__ be defined or __unix, __linux but I'm wondering
what else is needed.

> > I'll add what is needed and check if anything else is
> > missing there.
> 
> Yeah, it is not just _these_ new options; I think there have been
> several 'sparse only' options added 'recently' which have not been
> filtered out in cgcc. (again only 'sparse only' options need to be
> added to the regex in the check_only_option subroutine).

The last months, I added support for a few new flags but most
are flags also know by GCC (-fmem-report, -Woverride-init,
-Waddress, -dD, -std={c11,gnu11}). The only ones that need
to be filtered-out should be:
* -Wmemcpy-max-count and -fmemcpy-max-count=COUNT
* -fdump-linearize[=...]
but Ill double-check.

-- Luc

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-06-14  2:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-12 17:05 Sparse release v0.5.1-rc1 Christopher Li
2017-06-13  4:58 ` Luc Van Oostenryck
2017-06-13 15:08   ` Ramsay Jones
2017-06-13 16:05     ` Luc Van Oostenryck
2017-06-14  0:00       ` Ramsay Jones
2017-06-14  2:29         ` Luc Van Oostenryck
2017-06-13 17:54   ` Christopher Li
2017-06-14  2:05     ` Luc Van Oostenryck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.