Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Aug 1996 11:57:32 -0400
From:      Alexander Seth Jones <ajones@ctron.com>
To:        hackers@freefall.freebsd.org
Subject:   <machine/spl.h> and C++
Message-ID:  <3210A5EC.60B5@ctron.com>

next in thread | raw e-mail | index | archive | help
Hello,

  I'm writing a device driver in C++, and have run into a problem with
the GENSPL macro in <machine/spl.h>.  g++ is croaking on the statement:

__asm __volatile("":::"memory");

with the following error:

parse error before "::"

  Without getting into an argument about whether g++ is in error about
accepting the code as it is, I'm asking whether or not this code
fragment even needs to exist.

  Now, I just tried an interesting experiment.  I generated the assembly
code (using init_main.c) with the asm declaration in there.  It produced

#APP
#NO_APP

where the asm declaration should be.  Then I generated the assembly with
the asm declaration removed, and the code was the exact same except the
#APP/#NO_APP code was gone.  gas also says:

  If the first line of an input file is `#NO_APP' or if you use the
`-f' option, whitespace and comments are not removed from the input
file.  Within an input file, you can ask for whitespace and comment
removal in specific portions of the by putting a line that says `#APP'
before the text that may contain whitespace or comments, and putting a
line that says `#NO_APP' after this text.  This feature is mainly
intend to support `asm' statements in compilers whose output is
otherwise free of comments and whitespace.

  So it seems like the asm statement is a no-op.  Is this a fair
assumption?  Can I just safely get rid of it?  What are people's
thoughts about this?

--
Alex Jones              |  ajones@ctron.com
Cabletron Systems, Inc.
Durham, NH USA 03824



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3210A5EC.60B5>