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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren