STM32: Compilerwarnung vorübergehend unterdrücken

Gast #4182382
Lesenswert?
• ▲
▼
Bei vordefinierten Callbacks bekomme ich häufig eine Warnung:
1
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
2
{
3
  /* Turn LED4 on: Transfer process is correct */
4
  BSP_LED_On(LED4);
5
}
unused parameter 'AdcHandle' [-Wunused-parameter]

Plöt irgendwie. Kann man das mit einem #pragma o.ä. nur für diese 
Funktion vorübergehend unterbinden?
Gast #4182397
Lesenswert?
• ▲
▼
@foo (Gast):
Hmmmh... weiß ned so recht ob ich das will.
Die Interrupt-Callback-Funktionen stellt ST häufig in Dateien wie 
stm32f4xx_it.h zur Verfügung; um den Code portabel zu halten möchte ich 
in dem Hädder nix ändern.
Geht das ned irgendwie mit aus und wiedereinschalten der Warnung?

Das steht in main:
#pragma GCC diagnostic ignored "-Wunused-parameter"

Eigentlich sollte die Meldung ja dann auch unterdrückt werden, oder? 
Oder gilt dies nur für die Datei mit main() ...?
Gast #4182400
Lesenswert?
• ▲
▼
Du brauchst das unused Attribute ja nur an deinen eigenen Callback 
dranzutackern, also
1
void HAL_ADC_ConvCpltCallback(__attribute__((unused)) ADC_HandleTypeDef *AdcHandle)
2
{
3
  /* Turn LED4 on: Transfer process is correct */
4
  BSP_LED_On(LED4);
5
}
Gast #4182411
Lesenswert?
• ▲
▼
HA!
Ganz einfach.
Für den nächsten der über das gleiche Problem stolpert:
1
#pragma GCC diagnostic ignored "-Wunused-parameter"
2
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
3
{
4
  /* Turn LED4 on: Transfer process is correct */
5
  BSP_LED_On(LED4);
6
}
7
#pragma GCC diagnostic warning "-Wunused-parameter"
Erledigt.
Gast #4182417
Lesenswert?
• ▲
▼
Also wenn schon mit pragmas, dann aber richtig:
[c]
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
{
  /* Turn LED4 on: Transfer process is correct */
  BSP_LED_On(LED4);
}
#pragma GCC diagnostic pop
[c]
Gast #4182420
Lesenswert?
• ▲
▼
Code tags sollte man natürlich auch richtig benutzen:
1
#pragma GCC diagnostic push
2
#pragma GCC diagnostic ignored "-Wunused-parameter"
3
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
4
{
5
  /* Turn LED4 on: Transfer process is correct */
6
  BSP_LED_On(LED4);
7
}
8
#pragma GCC diagnostic pop
Gast #4182479
Lesenswert?
• ▲
▼
pop setzt -Wunused-parameter auf den Wert zurück, den es vorher hatte. 
Die erste Variante dagegen reaktiviert es immer.

Wenn es vorher nicht aktiv war, gibt das viele unerwartete Warnings im 
nachfolgenden Code.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.