struct drm_i915_private { int a, b, c; }; void *bar(int a, int *b, int *c) { return b; } void *baz(void *ptr) { return ptr; } #define _MIPI_MMIO_BASE(a) baz(a) #define _MMIO_MIPI(a, b, c) bar(a, b, c) #define _MIPIA_HSYNC_PADDING_COUNT (_MIPI_MMIO_BASE(dev_priv) + 0xb028) #define _MIPIC_HSYNC_PADDING_COUNT (_MIPI_MMIO_BASE(dev_priv) + 0xb828) #define MIPI_HSYNC_PADDING_COUNT(port) _MMIO_MIPI(port, _MIPIA_HSYNC_PADDING_COUNT, _MIPIC_HSYNC_PADDING_COUNT) int my_local; void main(void) { struct drm_i915_private *dev_priv = 0; for (int i = 0; i < 10; i++) i = i; bar(1, MIPI_HSYNC_PADDING_COUNT(1), &my_local); for (int j = 0; j < 5; j++) j = j; }