| @@ -744,7 +744,7 @@ enum warn_option { · 743 unmodified lines |
| 744 | WARN_GCC_COMPAT = 1u<<1, | 744 | WARN_GCC_COMPAT = 1u<<1, |
| 745 | WARN_WRITE_STRINGS = 1u<<2, | 745 | WARN_WRITE_STRINGS = 1u<<2, |
| 746 | WARN_IMPLICIT_FUNCTION_DECLARATION = 1u<<3, | 746 | WARN_IMPLICIT_FUNCTION_DECLARATION = 1u<<3, |
| 747 | WARN_ERROR = 1u<<4, | 747 | WARN_ERROR = 1u<<4, /* Not really as such in warn area, here only "MAX" */ |
| 748 | WARN_ALL = WARN_ERROR - 1 | 748 | WARN_ALL = WARN_ERROR - 1 |
| 749 | }; | 749 | }; |
| 750 | enum {WARN_ERROR_SHIFT = 16u}; | 750 | enum {WARN_ERROR_SHIFT = 16u}; |
| @@ -780,14 +780,13 @@ struct TCCState { · 29 unmodified lines |
| 780 | unsigned char ms_bitfields; /* if true, emulate MS algorithm for aligning bitfields */ | 780 | unsigned char ms_bitfields; /* if true, emulate MS algorithm for aligning bitfields */ |
| 781 | | 781 | |
| 782 | unsigned char warn_none; | 782 | unsigned char warn_none; |
| 783 | unsigned char warn_error; | | |
| 784 | /* NEED_WARNING(SELF,X) used to drive W[[no-]error]=X */ | 783 | /* NEED_WARNING(SELF,X) used to drive W[[no-]error]=X */ |
| 785 | uint32_t warn_mask; | 784 | uint32_t warn_mask; |
| 786 | #define NEED_WARNING(SELF,SWITCH) \ | 785 | #define NEED_WARNING(SELF,SWITCH) \ |
| 787 | (((SELF)->warn_mask & \ | 786 | (((SELF)->warn_mask & \ |
| 788 | (WARN_ ## SWITCH | (WARN_ ## SWITCH << WARN_ERROR_SHIFT))) \ | 787 | (WARN_ ## SWITCH | (WARN_ ## SWITCH << WARN_ERROR_SHIFT))) \ |
| 789 | ? (((SELF)->warn_mask & (WARN_ ## SWITCH << WARN_ERROR_SHIFT)) \ | 788 | ? (((SELF)->warn_mask & (WARN_ ## SWITCH << WARN_ERROR_SHIFT)) \ |
| 790 | ? (SELF)->warn_error = 1 : 1) : 0) | 789 | ? (SELF)->warn_mask |= (WARN_ERROR << WARN_ERROR_SHIFT), 1 : 1) : 0) |
| 791 | | 790 | |
| 792 | /* compile with debug symbol (and use them if error during execution) */ | 791 | /* compile with debug symbol (and use them if error during execution) */ |
| 793 | unsigned char do_debug; | 792 | unsigned char do_debug; |