Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83 SMI; site sun.uucp Path: utzoo!linus!decvax!decwrl!sun!gnu From: gnu@sun.uucp (John Gilmore) Newsgroups: net.lang.c Subject: Re: a (bad) use for &LABEL Message-ID: <1725@sun.uucp> Date: Thu, 4-Oct-84 03:05:30 EDT Article-I.D.: sun.1725 Posted: Thu Oct 4 03:05:30 1984 Date-Received: Fri, 5-Oct-84 08:31:09 EDT References: <525@nmtvax.UUCP> Organization: Sun Microsystems, Inc. Lines: 24 Here at Sun we used to write a fair bit of C code with intermixed assembler code, interrupts jumping into the middle of compiler produced code, etc. We stopped doing that because we kept getting burned by compiler changes -- and rightly so. The compiler is entitled to make a lot of assumptions about its environment that JUST AREN'T TRUE if you are intermixing random non-compiler-generated code or threads-of-control. The compiler can often generate better code by making MORE such assumptions as it evolves. If you really can't stomach writing your low level interrupt handler in assembler, try inserting ; /* Null statement often useful here */ #asm interruptlabel: #endasm or ; asm("interruptlabel:"); whichever your compiler prefers. Then, once it works, don't buy any newer releases of the compiler.