* [PATCH] use ARRAY_SIZE() when possible
@ 2010-12-09 11:27 Namhyung Kim
2010-12-09 12:36 ` Nicholas Mc Guire
2010-12-10 8:51 ` Christopher Li
0 siblings, 2 replies; 4+ messages in thread
From: Namhyung Kim @ 2010-12-09 11:27 UTC (permalink / raw)
To: Christopher Li; +Cc: linux-sparse
Convert (sizeof arr / sizeof arr[0]) to ARRAY_SIZE(arr).
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
---
lib.c | 8 ++++----
pre-process.c | 4 ++--
show-parse.c | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/lib.c b/lib.c
index c4a6f87..1d96129 100644
--- a/lib.c
+++ b/lib.c
@@ -437,7 +437,7 @@ static char **handle_onoff_switch(char *arg, char **next, const struct warning w
static char **handle_switch_W(char *arg, char **next)
{
- char ** ret = handle_onoff_switch(arg, next, warnings, sizeof warnings/sizeof warnings[0]);
+ char ** ret = handle_onoff_switch(arg, next, warnings, ARRAY_SIZE(warnings));
if (ret)
return ret;
@@ -453,7 +453,7 @@ static struct warning debugs[] = {
static char **handle_switch_v(char *arg, char **next)
{
- char ** ret = handle_onoff_switch(arg, next, debugs, sizeof debugs/sizeof debugs[0]);
+ char ** ret = handle_onoff_switch(arg, next, debugs, ARRAY_SIZE(debugs));
if (ret)
return ret;
@@ -477,7 +477,7 @@ static void handle_onoff_switch_finalize(const struct warning warnings[], int n)
static void handle_switch_W_finalize(void)
{
- handle_onoff_switch_finalize(warnings, sizeof(warnings) / sizeof(warnings[0]));
+ handle_onoff_switch_finalize(warnings, ARRAY_SIZE(warnings));
/* default Wdeclarationafterstatement based on the C dialect */
if (-1 == Wdeclarationafterstatement)
@@ -504,7 +504,7 @@ static void handle_switch_W_finalize(void)
static void handle_switch_v_finalize(void)
{
- handle_onoff_switch_finalize(debugs, sizeof(debugs) / sizeof(debugs[0]));
+ handle_onoff_switch_finalize(debugs, ARRAY_SIZE(debugs));
}
static char **handle_switch_U(char *arg, char **next)
diff --git a/pre-process.c b/pre-process.c
index 656acaa..603cc00 100644
--- a/pre-process.c
+++ b/pre-process.c
@@ -1718,13 +1718,13 @@ static void init_preprocessor(void)
{ "elif", handle_elif },
};
- for (i = 0; i < (sizeof (normal) / sizeof (normal[0])); i++) {
+ for (i = 0; i < ARRAY_SIZE(normal); i++) {
struct symbol *sym;
sym = create_symbol(stream, normal[i].name, SYM_PREPROCESSOR, NS_PREPROCESSOR);
sym->handler = normal[i].handler;
sym->normal = 1;
}
- for (i = 0; i < (sizeof (special) / sizeof (special[0])); i++) {
+ for (i = 0; i < ARRAY_SIZE(special); i++) {
struct symbol *sym;
sym = create_symbol(stream, special[i].name, SYM_PREPROCESSOR, NS_PREPROCESSOR);
sym->handler = special[i].handler;
diff --git a/show-parse.c b/show-parse.c
index c97debe..73cc86a 100644
--- a/show-parse.c
+++ b/show-parse.c
@@ -239,7 +239,7 @@ const char *builtin_typename(struct symbol *sym)
{
int i;
- for (i = 0; i < sizeof(typenames)/sizeof(typenames[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(typenames); i++)
if (typenames[i].sym == sym)
return typenames[i].name;
return NULL;
@@ -249,7 +249,7 @@ const char *builtin_ctypename(struct ctype *ctype)
{
int i;
- for (i = 0; i < sizeof(typenames)/sizeof(typenames[0]); i++)
+ for (i = 0; i < ARRAY_SIZE(typenames); i++)
if (&typenames[i].sym->ctype == ctype)
return typenames[i].name;
return NULL;
--
1.7.2.2
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] use ARRAY_SIZE() when possible
2010-12-09 11:27 [PATCH] use ARRAY_SIZE() when possible Namhyung Kim
@ 2010-12-09 12:36 ` Nicholas Mc Guire
2010-12-10 8:56 ` Christopher Li
2010-12-10 8:51 ` Christopher Li
1 sibling, 1 reply; 4+ messages in thread
From: Nicholas Mc Guire @ 2010-12-09 12:36 UTC (permalink / raw)
To: Namhyung Kim; +Cc: Christopher Li, linux-sparse
On Thu, 09 Dec 2010, Namhyung Kim wrote:
> Convert (sizeof arr / sizeof arr[0]) to ARRAY_SIZE(arr).
>
would that not be a cadidate for coccinelle/spatch rather than a potentially
error prone and repetitive manual patch?
array.cocci from the current 0.4.2 coccinelle distribution below should du
the job.
Might make sense to add a coccinelle directory in sparse to handle such cases ?
hofrat
// Use the macro ARRAY_SIZE when possible
//
// Confidence: High
// Copyright: (C) Gilles Muller, Julia Lawall, EMN, INRIA, DIKU. GPLv2.
// URL: http://coccinelle.lip6.fr/rules/array.html
// Options: -I ... -all_includes can give more complete results
virtual org
virtual patch
@i@
@@
#include <linux/kernel.h>
/////////////////////////////////////
/////////////////////////////////////
@depends on i && patch && !org@
type T;
T[] E;
@@
- (sizeof(E)/sizeof(*E))
+ ARRAY_SIZE(E)
@depends on i && patch && !org@
type T;
T[] E;
@@
- (sizeof(E)/sizeof(E[...]))
+ ARRAY_SIZE(E)
@depends on i && patch && !org@
type T;
T[] E;
@@
- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)
@n_patch depends on patch && !org@
identifier AS,E;
@@
- #define AS(E) ARRAY_SIZE(E)
@ depends on patch && !org@
expression E;
identifier n_patch.AS;
@@
- AS(E)
+ ARRAY_SIZE(E)
/////////////////////////////////////
/////////////////////////////////////
@arr_ptr depends on i && !patch && org@
type T;
T[] E;
position p;
@@
(sizeof(E@p)/sizeof(*E))
@arr_tab depends on i && !patch && org@
type T;
T[] E;
position p;
@@
(sizeof(E@p)/sizeof(E[...]))
@arr_typ depends on i && !patch && org@
type T;
T[] E;
position p;
@@
(sizeof(E@p)/sizeof(T))
@n_org depends on !patch && org@
identifier AS,E;
@@
#define AS(E) ARRAY_SIZE(E)
@arr_def depends on !patch && org@
expression E;
identifier n_org.AS;
position p;
@@
AS@p(E)
@script:python@
p << arr_ptr.p;
e << arr_ptr.E;
@@
cocci.print_main(e,p)
@script:python@
p << arr_tab.p;
e << arr_tab.E;
@@
cocci.print_main(e,p)
@script:python@
p << arr_typ.p;
e << arr_typ.E;
@@
cocci.print_main(e,p)
@script:python@
p << arr_def.p;
e << arr_def.E;
@@
cocci.print_main(e,p)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] use ARRAY_SIZE() when possible
2010-12-09 11:27 [PATCH] use ARRAY_SIZE() when possible Namhyung Kim
2010-12-09 12:36 ` Nicholas Mc Guire
@ 2010-12-10 8:51 ` Christopher Li
1 sibling, 0 replies; 4+ messages in thread
From: Christopher Li @ 2010-12-10 8:51 UTC (permalink / raw)
To: Namhyung Kim; +Cc: linux-sparse
On Thu, Dec 9, 2010 at 3:27 AM, Namhyung Kim <namhyung@gmail.com> wrote:
> Convert (sizeof arr / sizeof arr[0]) to ARRAY_SIZE(arr).
>
> Signed-off-by: Namhyung Kim <namhyung@gmail.com>
Looks good.
Chris
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] use ARRAY_SIZE() when possible
2010-12-09 12:36 ` Nicholas Mc Guire
@ 2010-12-10 8:56 ` Christopher Li
0 siblings, 0 replies; 4+ messages in thread
From: Christopher Li @ 2010-12-10 8:56 UTC (permalink / raw)
To: Nicholas Mc Guire; +Cc: Namhyung Kim, linux-sparse
On Thu, Dec 9, 2010 at 4:36 AM, Nicholas Mc Guire <der.herr@hofr.at> wrote:
> On Thu, 09 Dec 2010, Namhyung Kim wrote:
>
>> Convert (sizeof arr / sizeof arr[0]) to ARRAY_SIZE(arr).
>>
> would that not be a cadidate for coccinelle/spatch rather than a potentially
> error prone and repetitive manual patch?
> array.cocci from the current 0.4.2 coccinelle distribution below should du
> the job.
> Might make sense to add a coccinelle directory in sparse to handle such cases ?
>
Interesting. How do I use the provided script? I assume I need to invoke
coccinelle some how.
Chris
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-12-10 8:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-09 11:27 [PATCH] use ARRAY_SIZE() when possible Namhyung Kim
2010-12-09 12:36 ` Nicholas Mc Guire
2010-12-10 8:56 ` Christopher Li
2010-12-10 8:51 ` Christopher Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).