Weil die 1 ein signed int ist. Das <<15 schiebt das gesetzte Bit ins Vorzeichen
Krass. Danke für die Info. Dann würde wohl ein ((unsigned int)1 << 15) auch funktionieren?

Aber warum ist das dann ein Fehler? Hier gibt es kein Typcast.
reg_32 |= (1 << MEINBIT15); /* FEHLER: Setzt die Bits 31 - 15, da ((int)1 << 15) == 0xFFFF8000 */

Für was steht dabei MEINBIT15? Da fehlt jetzt eindeutig der Kontext ;)