www.mikrocontroller.net

Forum: Compiler & IDEs Artikel: Volatiles Are Miscompiled


Autor: Dietmar Sch. (dsausw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einen schönen Samstag allerseits,

für die Freunde des Blickes hinter den Kulissen,
ein kleiner Hinweis vom Embedded Systems Design magazine,
bezüglich der Untersuchung von C-Compilern.
Es geht um die Codeumsetzung mit volatile-qualifiern.

   http://www.cs.utah.edu/~regehr/papers/emsoft08-preprint.pdf

Unter anderem ist der MSP-GCC, bzw. der übersetzte Code,
untersucht worden.
Natürlich gibt es schon kontroverse Diskussionen um den
Sinn oder Unsinn einiger Beispiele ; )

Gruss
Dietmar

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wirklich ein interessantes Paper...

Sinn hin, Unsinn her. Figure 1 aus obigen Link:
const volatile int x;
volatile int y;
void foo(void) {
for (y=0; y>10; y++)
{
int z = x;
}
}

Erste Zeile - was wiegt bei der Optimierung schwerer, const oder 
volatile ? Müsste ein Compiler hier nicht wenigstens warnen?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wovor soll er warnen? Wie im Text ja steht, kann "const volatile" Sinn 
ergeben. Das sind auch keine Gegensätze, "const" sagt er darf nicht 
schreiben, "volatile" sagt er soll gefälligst jedesmal lesen.

Autor: T. H. (pumpkin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. wrote:
> Wovor soll er warnen? Wie im Text ja steht, kann "const volatile" Sinn
> ergeben. Das sind auch keine Gegensätze, "const" sagt er darf nicht
> schreiben, "volatile" sagt er soll gefälligst jedesmal lesen.

Überzeugt. Den Teil hatte ich noch nicht...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.