[cfe-dev] Warnings not raised from a macro: -Wundefined-bool-conversion/-Wtautological-undefined-compare

miroslav.fontan miroslav.fontan at wincor-nixdorf.cz
Mon Nov 10 04:59:43 PST 2014


Hi,

Thanks for the -save-temps hint, it helps with this particular issue,
unfortunatelly it does not solve the cause of the problem.

I guess that Clang-based tools inherit the same macro treatment from clang
parser and give an inaccurate results. 

For example this code fragment is handled incorrectly by command: clang-tidy
-check=-*,readability-braces-around-statements -fix

#define MACRO_1 i++
#define MACRO_2

void test(int i)
{
	if( i % 3) i--; // OK
	else if( i % 2) MACRO_1; // KO, no braces
	else MACRO_2; // OK
}

Maybe I am stubborn, I still think that preprocess step should be made
completely before the next steps.

Best regards

Mira


> -----Original Message-----
> From: cfe-dev-bounces at cs.uiuc.edu [mailto:cfe-dev-bounces at cs.uiuc.edu]
> On Behalf Of Joerg Sonnenberger
> Sent: Wednesday, November 05, 2014 12:20 PM
> To: cfe-dev at cs.uiuc.edu
> Subject: Re: [cfe-dev] Warnings not raised from a macro: -Wundefined-
> bool-conversion/-Wtautological-undefined-compare
> 
> On Wed, Nov 05, 2014 at 11:58:55AM +0100, miroslav.fontan wrote:
> > I think Martin is right. Preprocessor is only textual replacement,
> > compiler should not know about this step and compiles code resulting
> > from preprocess step.
> 
> A lot of people disagree. If you want to force it to give all warnings,
> use -save-temps.
> 
> Joerg
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev





More information about the cfe-dev mailing list