| ! RUN: %flang -E %s 2>&1 | FileCheck %s | |
| #define STRINGIFY(x) #x | |
| #define TOSTRING(x) STRINGIFY(x) | |
| #define PREFIX(x) prefix ## x | |
| #define NAME(x) PREFIX(foo ## x) | |
| #define AUGMENT(x) NAME(x ## suffix) | |
| ! CHECK: subroutine prefixfoosuffix() | |
| ! CHECK: print *, "prefixfoosuffix" | |
| ! CHECK: end subroutine prefixfoosuffix | |
| subroutine AUGMENT()() | |
| print *, TOSTRING(AUGMENT()) | |
| end subroutine AUGMENT() | |
| ! CHECK: subroutine prefixfoobarsuffix() | |
| ! CHECK: print *, "prefixfoobarsuffix" | |
| ! CHECK: end subroutine prefixfoobarsuffix | |
| subroutine AUGMENT(bar)() | |
| print *, TOSTRING(AUGMENT(bar)) | |
| end subroutine AUGMENT(bar) |