Forum: Compiler & IDEs ARM-GCC: always_inline function might not be inlinable


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,
kennt jemand eine gute Beschreibung, wann sich eine Funktion inlinen 
läßt und wann nicht?

Ich habe folgende (einfache) Funktion für einen Cortex-M3:
1
static __attribute__((always_inline)) void SetBits(GPIO_TypeDef * const GPIOx, const uint16_t bit)
2
{
3
  GPIOx->BSRR = bit;
4
}
die mir mit der Warnung "always_inline function might not be inlinable" 
quittiert wird. Das Assembler-Listing sagt mir, daß sie auch korrekt 
geinlined wird (zumindest an den Stellen, wo ich nachgeguckt habe).

Sie wird mit einem konstanten Zeiger aufgerufen, dessen Inhalt 
veränderlich ist- wie es sich für Portspins gehört, also
1
SetsBits(GPIOB,0x01);
Warum meckert der Kompiler?

Viele Grüße
W.T.

von (prx) A. K. (prx)


Lesenswert?

"inline" vergessen. Das Attribut ergänzt das nur.

von Walter T. (nicolas)


Lesenswert?

Danke für die schnelle Antwort!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.