title: error: expected identifier or '(' before ')' token after changing a macro
body: <p>In a C program (u-boot), to check if the program runs that macro, I changed a define state<br />
  from</p>
  <pre><code>#define debug_cond(cond, fmt, args...)                  \
  ({                                  \
      if (cond)                           \
          log(LOG_CATEGORY,                   \
              (enum log_level_t)(LOGL_FORCE_DEBUG | _LOG_DEBUG),  \
              fmt, ##args);                   \
  })
  </code></pre>
  <p>to</p>
  <pre><code>#define debug_cond(cond, fmt, args...)                  \
  ({                                  \
  extern uint64_t myptr;              \
      if (cond) {                         \
          *((uint64_t *)myptr) = 0x801; myptr+=8; \ 
          log(LOG_CATEGORY,                   \
              (enum log_level_t)(LOGL_FORCE_DEBUG | _LOG_DEBUG),  \
              fmt, ##args);                   \
      }
  })                 &lt;==== line 267
  </code></pre>
  <p>and the compiles gives me this error message.</p>
  <pre><code>In file included from include/linux/printk.h:4,
                   from include/common.h:20,
                   from lib/asm-offsets.c:14:
  include/log.h:267:1: error: expected identifier or '(' before '}' token
    267 | })
        | ^
  include/log.h:267:2: error: expected identifier or '(' before ')' token
    267 | })
  </code></pre>
  <p>I can't figure out what is wrong here. Can anyone tell me where I'm doing wrong?</p>