view gcc/testsuite/c-c++-common/Wmultistatement-macros-7.c @ 16:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line source

/* PR c/80116 */
/* { dg-options "-Wmultistatement-macros" } */
/* { dg-do compile } */

#define SWAP(X, Y)      \
  tmp = X; /* { dg-warning "macro expands to multiple statements" } */ \
  X = Y;                \
  Y = tmp

#define BODY_AND_IF(COND, X, Y)  \
  if (COND) SWAP (X, Y) /* { dg-message "in expansion of macro .SWAP." } */

void
fn (int x, int y)
{
  int tmp;
  BODY_AND_IF (1, x, y); /* { dg-message "in expansion of macro .BODY_AND_IF." } */
}