ppTests undef

This commit is contained in:
damc 2022-07-26 12:57:50 +02:00
parent bf6e5688aa
commit ae43678b9e
3 changed files with 65 additions and 0 deletions

View File

@ -1618,4 +1618,21 @@ mod tests {
testfile_contents("unconnected_drive.sv")
);
} // }}}
#[test]
fn undef() { // {{{
let include_paths = [testfile_path("")];
let (ret, _) = preprocess(
testfile_path("undef.sv"),
&HashMap::new(),
&include_paths,
false,
false,
)
.unwrap();
assert_eq!(
ret.text(),
testfile_contents("expected/undef.sv")
);
} // }}}
}

View File

@ -0,0 +1,20 @@
// IEEE1800-2017 Clause 22.5.2
// The directive `undef shall undefine the specified text macro if previously
// defined by a `define compiler directive within the compilation unit. An
// attempt to undefine a text macro that was not previously defined using a
// `define compiler directive can issue a warning.
`undef FOO
`undef FOO// Comment
`undef FOO // Comment
`define FOO foo
// AAA
// This block SHOULD be emitted from the preprocessor.
`undef FOO
// BBB
// This block SHOULD be emitted from the preprocessor.

View File

@ -0,0 +1,28 @@
// IEEE1800-2017 Clause 22.5.2
// The directive `undef shall undefine the specified text macro if previously
// defined by a `define compiler directive within the compilation unit. An
// attempt to undefine a text macro that was not previously defined using a
// `define compiler directive can issue a warning.
`undef FOO
`undef FOO// Comment
`undef FOO // Comment
`define FOO foo
`ifdef FOO
// AAA
// This block SHOULD be emitted from the preprocessor.
`endif
`ifndef FOO
// AAA
// This block should NOT be emitted from the preprocessor.
`endif
`undef FOO
`ifdef FOO
// BBB
// This block should NOT be emitted from the preprocessor.
`endif
`ifndef FOO
// BBB
// This block SHOULD be emitted from the preprocessor.
`endif