Skip to content

Commit c262dc2

Browse files
committed
clean up and add note for "-Wclass-memaccess"
1 parent 7234390 commit c262dc2

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

libraries/SPI/SPI.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -332,21 +332,25 @@ void SPIClass::dmaAllocate(void) {
332332
totalDescriptors * sizeof(DmacDescriptor)))) {
333333
use_dma = true; // Everything allocated successfully
334334
extraWriteDescriptors = &extraReadDescriptors[numReadDescriptors];
335+
336+
// dmac.h didn't include extern "C" which cause
337+
// DmacDescriptor and its members are defined as C++ struct therefore
338+
// memcpy will throw warning on copying where simple assignment won't work
339+
#pragma GCC diagnostic push
340+
#pragma GCC diagnostic ignored "-Wclass-memaccess"
341+
335342
// Initialize descriptors (copy from first ones)
336343
for(int i=0; i<numReadDescriptors; i++) {
337-
#pragma GCC diagnostic push
338-
#pragma GCC diagnostic ignored "-Wclass-memaccess"
339344
memcpy(&extraReadDescriptors[i], firstReadDescriptor,
340345
sizeof(DmacDescriptor));
341-
#pragma GCC diagnostic pop
342346
}
343347
for(int i=0; i<numWriteDescriptors; i++) {
344-
#pragma GCC diagnostic push
345-
#pragma GCC diagnostic ignored "-Wclass-memaccess"
346348
memcpy(&extraWriteDescriptors[i], firstWriteDescriptor,
347349
sizeof(DmacDescriptor));
348-
#pragma GCC diagnostic pop
349350
}
351+
352+
#pragma GCC diagnostic pop
353+
350354
} // end malloc
351355
} // end extra descriptor check
352356

0 commit comments

Comments
 (0)