/* PR c/64249 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-Wduplicated-cond" } */ | |
/* Test we don't warn if a condition in an if-else-if chain | |
has a side-effect. E.g. __cxxabiv1::__cxa_end_catch () | |
uses such a construction. */ | |
extern int a, bar (void); | |
int | |
fn1 (void) | |
{ | |
if (a) | |
return 1; | |
else if (bar ()) | |
return 2; | |
else if (a) | |
return 3; | |
return 0; | |
} | |
int | |
fn2 (int c) | |
{ | |
if (c < 0) | |
return 1; | |
else if (--c == 0) | |
return 2; | |
else if (c < 0) | |
return 3; | |
return 0; | |
} |