Skip to content

Commit 669d7e4

Browse files
positron96fpistm
authored andcommitted
Fix bitWrite with parenthesis
Current version does not wrap arguments in "()", so works incorrectly when used like this: ``` bitWrite(var, bit, cond?1:0); ``` Same as in here: espressif/arduino-esp32#4466
1 parent fa8bebd commit 669d7e4

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

cores/arduino/wiring_constants.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ enum BitOrder {
9191
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
9292
#define bitSet(value, bit) ((value) |= (1UL << (bit)))
9393
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
94-
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
94+
#define bitWrite(value, bit, bitvalue) ((bitvalue) ? bitSet((value), (bit)) : bitClear((value), (bit) ))
9595

9696
#define bit(b) (1UL << (b))
9797
//macro added for compatibility

0 commit comments

Comments
 (0)