mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 06:31:31 +00:00
Fixed parentheses handling when a function-like macro name itself is used as an macro argument.
This commit is contained in:
parent
0a051a4dee
commit
7971eec3cc
@ -1142,17 +1142,27 @@ static void MacroReplacement (StrBuf* Source, StrBuf* Target, int MultiLine)
|
||||
if (Whitespace > 0) {
|
||||
SB_AppendChar (Target, ' ');
|
||||
}
|
||||
if (CurC == '#') {
|
||||
if (OLine == 0) {
|
||||
OLine = Target;
|
||||
ParseDirectives (0);
|
||||
OLine = 0;
|
||||
} else {
|
||||
ParseDirectives (0);
|
||||
|
||||
/* Directives can only be found in an argument list
|
||||
** that spans multiple lines.
|
||||
*/
|
||||
if (MultiLine) {
|
||||
if (CurC == '#') {
|
||||
/* If we were going to support #pragma in
|
||||
** macro argument list, it would be output
|
||||
** to OLine.
|
||||
*/
|
||||
if (OLine == 0) {
|
||||
OLine = Target;
|
||||
ParseDirectives (0);
|
||||
OLine = 0;
|
||||
} else {
|
||||
ParseDirectives (0);
|
||||
}
|
||||
}
|
||||
/* Add the source info to preprocessor output if needed */
|
||||
AddPreLine (Target);
|
||||
}
|
||||
/* Add the source info to preprocessor output if needed */
|
||||
AddPreLine (Target);
|
||||
} else {
|
||||
/* Function-like macro */
|
||||
if (OLine == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user