2015-12-12 18:07:08

by Markus Trippelsdorf

[permalink] [raw]
Subject: [PATCH] Fix misleading indentation issues in perf

perf doesn't build with gcc-6 because of several misleading-indentation
warnings, e.g.:

arch/x86/tests/intel-cqm.c: In function ‘spawn’:
arch/x86/tests/intel-cqm.c:21:3: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
sleep(5);
^~~~~

arch/x86/tests/intel-cqm.c:20:2: note: ...this ‘while’ clause, but it is not
while(1);
^~~~~

Signed-off-by: Markus Trippelsdorf <[email protected]>

diff --git a/tools/perf/arch/x86/tests/intel-cqm.c b/tools/perf/arch/x86/tests/intel-cqm.c
index d28c1b6a3b54..fa5d17af88b7 100644
--- a/tools/perf/arch/x86/tests/intel-cqm.c
+++ b/tools/perf/arch/x86/tests/intel-cqm.c
@@ -17,7 +17,7 @@ static pid_t spawn(void)
if (pid)
return pid;

- while(1);
+ while(1)
sleep(5);
return 0;
}
diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c
index d4d7cc27252f..718bd46d47fa 100644
--- a/tools/perf/ui/browsers/annotate.c
+++ b/tools/perf/ui/browsers/annotate.c
@@ -755,11 +755,11 @@ static int annotate_browser__run(struct annotate_browser *browser,
nd = browser->curr_hot;
break;
case K_UNTAB:
- if (nd != NULL)
+ if (nd != NULL) {
nd = rb_next(nd);
if (nd == NULL)
nd = rb_first(&browser->entries);
- else
+ } else
nd = browser->curr_hot;
break;
case K_F1:
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index e4b173dec4b9..c900b664ab8f 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -153,7 +153,7 @@ static int perf_pmu__parse_unit(struct perf_pmu_alias *alias, char *dir, char *n
if (fd == -1)
return -1;

- sret = read(fd, alias->unit, UNIT_MAX_LEN);
+ sret = read(fd, alias->unit, UNIT_MAX_LEN);
if (sret < 0)
goto error;

--
Markus


2015-12-14 08:20:06

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PATCH] Fix misleading indentation issues in perf


* Markus Trippelsdorf <[email protected]> wrote:

> perf doesn't build with gcc-6 because of several misleading-indentation
> warnings, e.g.:
>
> arch/x86/tests/intel-cqm.c: In function ‘spawn’:
> arch/x86/tests/intel-cqm.c:21:3: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
> sleep(5);
> ^~~~~
>
> arch/x86/tests/intel-cqm.c:20:2: note: ...this ‘while’ clause, but it is not
> while(1);
> ^~~~~

Nice warnings!

> diff --git a/tools/perf/arch/x86/tests/intel-cqm.c b/tools/perf/arch/x86/tests/intel-cqm.c
> index d28c1b6a3b54..fa5d17af88b7 100644
> --- a/tools/perf/arch/x86/tests/intel-cqm.c
> +++ b/tools/perf/arch/x86/tests/intel-cqm.c
> @@ -17,7 +17,7 @@ static pid_t spawn(void)
> if (pid)
> return pid;
>
> - while(1);
> + while(1)
> sleep(5);

looks like it caught a real bug here.


> case K_UNTAB:
> - if (nd != NULL)
> + if (nd != NULL) {
> nd = rb_next(nd);
> if (nd == NULL)
> nd = rb_first(&browser->entries);
> - else
> + } else
> nd = browser->curr_hot;
> break;

That looks like a real bug as well AFAICS.

> case K_F1:
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index e4b173dec4b9..c900b664ab8f 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -153,7 +153,7 @@ static int perf_pmu__parse_unit(struct perf_pmu_alias *alias, char *dir, char *n
> if (fd == -1)
> return -1;
>
> - sret = read(fd, alias->unit, UNIT_MAX_LEN);
> + sret = read(fd, alias->unit, UNIT_MAX_LEN);
> if (sret < 0)
> goto error;

This is just whitespace noise, but annoying.

Cool compiler feature.

Thanks,

Ingo

2015-12-14 10:46:12

by Matt Fleming

[permalink] [raw]
Subject: Re: [PATCH] Fix misleading indentation issues in perf

On Sat, 12 Dec, at 07:07:02PM, Markus Trippelsdorf wrote:
> perf doesn't build with gcc-6 because of several misleading-indentation
> warnings, e.g.:
>
> arch/x86/tests/intel-cqm.c: In function ‘spawn’:
> arch/x86/tests/intel-cqm.c:21:3: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
> sleep(5);
> ^~~~~
>
> arch/x86/tests/intel-cqm.c:20:2: note: ...this ‘while’ clause, but it is not
> while(1);
> ^~~~~
>
> Signed-off-by: Markus Trippelsdorf <[email protected]>
>
> diff --git a/tools/perf/arch/x86/tests/intel-cqm.c b/tools/perf/arch/x86/tests/intel-cqm.c
> index d28c1b6a3b54..fa5d17af88b7 100644
> --- a/tools/perf/arch/x86/tests/intel-cqm.c
> +++ b/tools/perf/arch/x86/tests/intel-cqm.c
> @@ -17,7 +17,7 @@ static pid_t spawn(void)
> if (pid)
> return pid;
>
> - while(1);
> + while(1)
> sleep(5);
> return 0;
> }

Whoops. Good catch.

Reviewed-by: Matt Fleming <[email protected]>

2015-12-14 15:14:54

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] Fix misleading indentation issues in perf

Em Mon, Dec 14, 2015 at 10:46:07AM +0000, Matt Fleming escreveu:
> On Sat, 12 Dec, at 07:07:02PM, Markus Trippelsdorf wrote:
> > perf doesn't build with gcc-6 because of several misleading-indentation
> > warnings, e.g.:
> >
> > arch/x86/tests/intel-cqm.c: In function ‘spawn’:
> > arch/x86/tests/intel-cqm.c:21:3: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
> > sleep(5);
> > ^~~~~
> >
> > arch/x86/tests/intel-cqm.c:20:2: note: ...this ‘while’ clause, but it is not
> > while(1);
> > ^~~~~
> >
> > Signed-off-by: Markus Trippelsdorf <[email protected]>
> >
> > diff --git a/tools/perf/arch/x86/tests/intel-cqm.c b/tools/perf/arch/x86/tests/intel-cqm.c
> > index d28c1b6a3b54..fa5d17af88b7 100644
> > --- a/tools/perf/arch/x86/tests/intel-cqm.c
> > +++ b/tools/perf/arch/x86/tests/intel-cqm.c
> > @@ -17,7 +17,7 @@ static pid_t spawn(void)
> > if (pid)
> > return pid;
> >
> > - while(1);
> > + while(1)
> > sleep(5);
> > return 0;
> > }
>
> Whoops. Good catch.
>
> Reviewed-by: Matt Fleming <[email protected]>

So, Markus, can you split this in three patches, stating that in some
cases its just cosmetic stuff while in others really a bug got fixed,
adding the Reviewed-by: tag for the cqm one? And acked-by for all, from
Ingo?

- Arnaldo

2015-12-14 15:43:41

by Markus Trippelsdorf

[permalink] [raw]
Subject: [PATCH 1/3] Remove wrong semicolon in while loop

The while loop was spinning. Fix by removing a semicolon.

The issue was pointed out by gcc-6's -Wmisleading-indentation.

Reviewed-by: Matt Fleming <[email protected]>
Acked-by: Ingo Molnar <[email protected]>
Signed-off-by: Markus Trippelsdorf <[email protected]>

diff --git a/tools/perf/arch/x86/tests/intel-cqm.c b/tools/perf/arch/x86/tests/intel-cqm.c
index d28c1b6a3b54..fa5d17af88b7 100644
--- a/tools/perf/arch/x86/tests/intel-cqm.c
+++ b/tools/perf/arch/x86/tests/intel-cqm.c
@@ -17,7 +17,7 @@ static pid_t spawn(void)
if (pid)
return pid;

- while(1);
+ while(1)
sleep(5);
return 0;
}
--
Markus

2015-12-14 15:44:07

by Markus Trippelsdorf

[permalink] [raw]
Subject: [PATCH 2/3] Add missing braces to if statement

Add missing braces to if statement.

The issue was pointed out by gcc-6's -Wmisleading-indentation.

Acked-by: Ingo Molnar <[email protected]>
Signed-off-by: Markus Trippelsdorf <[email protected]>

diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c
index d4d7cc27252f..718bd46d47fa 100644
--- a/tools/perf/ui/browsers/annotate.c
+++ b/tools/perf/ui/browsers/annotate.c
@@ -755,11 +755,11 @@ static int annotate_browser__run(struct annotate_browser *browser,
nd = browser->curr_hot;
break;
case K_UNTAB:
- if (nd != NULL)
+ if (nd != NULL) {
nd = rb_next(nd);
if (nd == NULL)
nd = rb_first(&browser->entries);
- else
+ } else
nd = browser->curr_hot;
break;
case K_F1:
--
Markus

2015-12-14 15:44:44

by Markus Trippelsdorf

[permalink] [raw]
Subject: [PATCH 3/3] Fix misleadingly indented assignment (whitespace)

Fix misleadingly indented assignment.
This is just a simple whitespace fix.

The issue was pointed out by gcc-6's -Wmisleading-indentation.

Acked-by: Ingo Molnar <[email protected]>
Signed-off-by: Markus Trippelsdorf <[email protected]>

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index e4b173dec4b9..c900b664ab8f 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -153,7 +153,7 @@ static int perf_pmu__parse_unit(struct perf_pmu_alias *alias, char *dir, char *n
if (fd == -1)
return -1;

- sret = read(fd, alias->unit, UNIT_MAX_LEN);
+ sret = read(fd, alias->unit, UNIT_MAX_LEN);
if (sret < 0)
goto error;

--
Markus

2015-12-14 17:55:41

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH 1/3] Remove wrong semicolon in while loop

Em Mon, Dec 14, 2015 at 04:43:35PM +0100, Markus Trippelsdorf escreveu:
> The while loop was spinning. Fix by removing a semicolon.

Thanks for splitting it up!

- Arnaldo