/* 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; }