|  | # RUN: not modularize %s -x c++ 2>&1 | FileCheck %s | 
|  |  | 
|  | Inputs/InconsistentHeader1.h | 
|  | Inputs/InconsistentHeader2.h | 
|  |  | 
|  | # CHECK: error: macro 'SYMBOL' defined at multiple locations: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:3:9 | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:7:9 | 
|  | # CHECK-NEXT: error: macro 'FUNC_STYLE' defined at multiple locations: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:4:9 | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:8:9 | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:15:11: | 
|  | # CHECK-NEXT: int var = FUNC_STYLE(1, 0); | 
|  | # CHECK-NEXT:           ^ | 
|  | # CHECK-NEXT: error: Macro instance 'FUNC_STYLE(1, 0);' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'FUNC_STYLE(1, 0);' expanded to: '1||0' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:4:9: | 
|  | # CHECK-NEXT: #define FUNC_STYLE(a, b) a||b | 
|  | # CHECK-NEXT:         ^ | 
|  | # CHECK-NEXT: Macro defined here. | 
|  | # CHECK-NEXT:   'FUNC_STYLE(1, 0);' expanded to: '1&&0' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:8:9: | 
|  | # CHECK-NEXT: #define FUNC_STYLE(a, b) a&&b | 
|  | # CHECK-NEXT:         ^ | 
|  | # CHECK-NEXT: Macro defined here. | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:11:5: | 
|  | # CHECK-NEXT: #if SYMBOL == 1 | 
|  | # CHECK-NEXT:     ^ | 
|  | # CHECK-NEXT: error: Macro instance 'SYMBOL' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'SYMBOL' expanded to: '1' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:3:9: | 
|  | # CHECK-NEXT: #define SYMBOL 1 | 
|  | # CHECK-NEXT:         ^ | 
|  | # CHECK-NEXT: Macro defined here. | 
|  | # CHECK-NEXT:   'SYMBOL' expanded to: '2' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:7:9: | 
|  | # CHECK-NEXT: #define SYMBOL 2 | 
|  | # CHECK-NEXT:         ^ | 
|  | # CHECK-NEXT: Macro defined here. | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:17:5: | 
|  | # CHECK-NEXT: #if defined(SYMBOL1) | 
|  | # CHECK-NEXT:     ^ | 
|  | # CHECK-NEXT: error: Macro instance 'defined(SYMBOL1)' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'defined(SYMBOL1)' expanded to: 'true' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h:3:9: | 
|  | # CHECK-NEXT: #define SYMBOL1 1 | 
|  | # CHECK-NEXT:         ^ | 
|  | # CHECK-NEXT: Macro defined here. | 
|  | # CHECK-NEXT:   'defined(SYMBOL1)' expanded to: 'false' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: (no macro definition) | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:11:2 | 
|  | # CHECK-NEXT: #if SYMBOL == 1 | 
|  | # CHECK-NEXT: ^ | 
|  | # CHECK-NEXT: error: Conditional expression instance 'SYMBOL == 1' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'SYMBOL == 1' expanded to: 'true' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT:   'SYMBOL == 1' expanded to: 'false' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:2:2 | 
|  | # CHECK-NEXT: #ifdef SYMBOL1 | 
|  | # CHECK-NEXT: ^ | 
|  | # CHECK-NEXT: error: Conditional expression instance 'SYMBOL1' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'SYMBOL1' expanded to: 'true' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT:   'SYMBOL1' expanded to: 'false' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:6:2 | 
|  | # CHECK-NEXT: #ifdef SYMBOL2 | 
|  | # CHECK-NEXT: ^ | 
|  | # CHECK-NEXT: error: Conditional expression instance 'SYMBOL2' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'SYMBOL2' expanded to: 'false' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT:   'SYMBOL2' expanded to: 'true' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h:17:2 | 
|  | # CHECK-NEXT: #if defined(SYMBOL1) | 
|  | # CHECK-NEXT: ^ | 
|  | # CHECK-NEXT: error: Conditional expression instance 'defined(SYMBOL1)' has different values in this header, depending on how it was included. | 
|  | # CHECK-NEXT:   'defined(SYMBOL1)' expanded to: 'true' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader1.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT:   'defined(SYMBOL1)' expanded to: 'false' with respect to these inclusion paths: | 
|  | # CHECK-NEXT:     {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentHeader2.h | 
|  | # CHECK-NEXT:       {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h | 
|  | # CHECK-NEXT: error: header '{{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h' has different contents depending on how it was included. | 
|  | # CHECK-NEXT: note: 'SYMBOL' in {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h at 3:9 not always provided | 
|  | # CHECK-NEXT: note: 'FUNC_STYLE' in {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h at 4:9 not always provided | 
|  | # CHECK-NEXT: note: 'SYMBOL' in {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h at 7:9 not always provided | 
|  | # CHECK-NEXT: note: 'FUNC_STYLE' in {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h at 8:9 not always provided | 
|  | # CHECK-NEXT: note: 'TypeInt' in {{.*}}{{[/\\]}}Inputs{{[/\\]}}InconsistentSubHeader.h at 12:13 not always provided |