Skip to content

_Pragma warning weird interaction #69

@KaeLL

Description

@KaeLL

Checklist

  • Checked the issue tracker for similar issues to ensure this is not a duplicate.
  • Provided a clear description of your suggestion.
  • Included any relevant context or examples.

Issue or Suggestion Description

Compiling one of my apps against the latest IDF:master, the following code
Screenshot From 2024-12-06 16-39-53
Screenshot From 2024-12-06 16-39-21
Screenshot From 2024-12-06 16-40-23

when compiled, produces the following warnings

/app/components/w5100/port/src/w5100-ll.c: In function 'w5100_spi_init':
/app/components/w5100/port/src/w5100-ll.c:56:27: warning: VSPI_HOST is deprecated in favor of SPI3_HOST
   56 |                 &w5100_spi_handle ) );
      |                           ^~~~~~~~~~~~
[994/1023] Building C object esp-idf/nfc/CMakeFiles/__idf_nfc.dir/rfid_reader/Hardware/spi_nfc.c.obj
/app/components/nfc/rfid_reader/Hardware/spi_nfc.c: In function 'SPI_setup':
/app/components/nfc/rfid_reader/Hardware/spi_nfc.c:379:27: warning: VSPI_HOST is deprecated in favor of SPI3_HOST
  379 |                 &trf_hdl ) );
      |                           ^~~
[1015/1023] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj
/app/main/main.c: In function 'app_main':
/app/main/main.c:61:34: warning: VSPI_HOST is deprecated in favor of SPI3_HOST
   61 |                         SPI_DMA_CH1 ) );
      |                                  ^~~~~~~

That looks a bit weird. The lines reported point to the last line of the ESP_ERROR_CHECK macro calls, not the first. The markers are a bit off as well.
Then I checked the macros

#define SPI_HOST    _Pragma ("GCC warning \"SPI_HOST is deprecated in favor of SPI1_HOST\"")  SPI1_HOST
#define HSPI_HOST   _Pragma ("GCC warning \"HSPI_HOST is deprecated in favor of SPI2_HOST\"") SPI2_HOST
#define VSPI_HOST   _Pragma ("GCC warning \"VSPI_HOST is deprecated in favor of SPI3_HOST\"") SPI3_HOST

I guess C99 _Pragma's don't interact well with the diagnostics part of the front-end? Either way, looks like a bug.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions