mirror of
https://github.com/cc65/cc65.git
synced 2024-07-17 09:29:10 +00:00
Merge pull request #462 from pmjdebruijn/pragma-message
pragma: add minimalist message pragma implementation
This commit is contained in:
commit
f0d760de4a
@ -1119,6 +1119,23 @@ parameter with the <tt/#pragma/.
|
|||||||
remembered and output as a whole when translation is finished.
|
remembered and output as a whole when translation is finished.
|
||||||
|
|
||||||
|
|
||||||
|
<sect1><tt>#pragma message (<message>)</tt><label id="pragma-message"><p>
|
||||||
|
|
||||||
|
This pragma is used to display informational messages at compile-time.
|
||||||
|
|
||||||
|
The message intented to be displayed must be a string literal.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
<tscreen><verb>
|
||||||
|
#pragma message ("in a bottle")
|
||||||
|
</verb></tscreen>
|
||||||
|
|
||||||
|
Results in the compiler outputting the following to stderr:
|
||||||
|
<tscreen><verb>
|
||||||
|
example.c(42): Note: in a bottle
|
||||||
|
</verb></tscreen>
|
||||||
|
|
||||||
|
|
||||||
<sect1><tt>#pragma optimize ([push,] on|off)</tt><label id="pragma-optimize"><p>
|
<sect1><tt>#pragma optimize ([push,] on|off)</tt><label id="pragma-optimize"><p>
|
||||||
|
|
||||||
Switch optimization on or off. If the argument is "off", optimization is
|
Switch optimization on or off. If the argument is "off", optimization is
|
||||||
|
@ -78,6 +78,7 @@ typedef enum {
|
|||||||
PRAGMA_DATASEG, /* obsolete */
|
PRAGMA_DATASEG, /* obsolete */
|
||||||
PRAGMA_INLINE_STDFUNCS,
|
PRAGMA_INLINE_STDFUNCS,
|
||||||
PRAGMA_LOCAL_STRINGS,
|
PRAGMA_LOCAL_STRINGS,
|
||||||
|
PRAGMA_MESSAGE,
|
||||||
PRAGMA_OPTIMIZE,
|
PRAGMA_OPTIMIZE,
|
||||||
PRAGMA_REGISTER_VARS,
|
PRAGMA_REGISTER_VARS,
|
||||||
PRAGMA_REGVARADDR,
|
PRAGMA_REGVARADDR,
|
||||||
@ -114,6 +115,7 @@ static const struct Pragma {
|
|||||||
{ "dataseg", PRAGMA_DATASEG }, /* obsolete */
|
{ "dataseg", PRAGMA_DATASEG }, /* obsolete */
|
||||||
{ "inline-stdfuncs", PRAGMA_INLINE_STDFUNCS },
|
{ "inline-stdfuncs", PRAGMA_INLINE_STDFUNCS },
|
||||||
{ "local-strings", PRAGMA_LOCAL_STRINGS },
|
{ "local-strings", PRAGMA_LOCAL_STRINGS },
|
||||||
|
{ "message", PRAGMA_MESSAGE },
|
||||||
{ "optimize", PRAGMA_OPTIMIZE },
|
{ "optimize", PRAGMA_OPTIMIZE },
|
||||||
{ "register-vars", PRAGMA_REGISTER_VARS },
|
{ "register-vars", PRAGMA_REGISTER_VARS },
|
||||||
{ "regvaraddr", PRAGMA_REGVARADDR },
|
{ "regvaraddr", PRAGMA_REGVARADDR },
|
||||||
@ -750,6 +752,13 @@ static void IntPragma (StrBuf* B, IntStack* Stack, long Low, long High)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void MakeMessage (const char* Message)
|
||||||
|
{
|
||||||
|
fprintf (stderr, "%s(%u): Note: %s\n", GetInputName (CurTok.LI), GetInputLine (CurTok.LI), Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void ParsePragma (void)
|
static void ParsePragma (void)
|
||||||
/* Parse the contents of the _Pragma statement */
|
/* Parse the contents of the _Pragma statement */
|
||||||
{
|
{
|
||||||
@ -849,6 +858,10 @@ static void ParsePragma (void)
|
|||||||
FlagPragma (&B, &LocalStrings);
|
FlagPragma (&B, &LocalStrings);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PRAGMA_MESSAGE:
|
||||||
|
StringPragma (&B, MakeMessage);
|
||||||
|
break;
|
||||||
|
|
||||||
case PRAGMA_OPTIMIZE:
|
case PRAGMA_OPTIMIZE:
|
||||||
FlagPragma (&B, &Optimize);
|
FlagPragma (&B, &Optimize);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user