about summary refs log tree commit diff
path: root/tests/ui/rfcs/rfc-3348-c-string-literals/no-nuls.rs
blob: a082521f4b5b815ebdd9551a77f617fe6937da45 (plain)
ofshex dumpascii
0000 2f 2f 40 20 65 64 69 74 69 6f 6e 3a 20 32 30 32 31 0a 0a 2f 2f 20 54 68 65 20 6e 75 6c 6c 20 63 //@.edition:.2021..//.The.null.c
0020 68 61 72 20 63 68 65 63 6b 20 66 6f 72 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 20 har.check.for.C.string.literals.
0040 77 61 73 20 6f 72 69 67 69 6e 61 6c 6c 79 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 66 74 65 72 was.originally.implemented.after
0060 0a 2f 2f 20 65 78 70 61 6e 73 69 6f 6e 2c 20 77 68 69 63 68 20 6d 65 61 6e 74 20 74 68 65 20 66 .//.expansion,.which.meant.the.f
0080 69 72 73 74 20 66 69 76 65 20 73 74 72 69 6e 67 73 20 69 6e 20 74 68 69 73 20 66 69 6c 65 20 74 irst.five.strings.in.this.file.t
00a0 72 69 67 67 65 72 65 64 20 65 72 72 6f 72 73 2c 0a 2f 2f 20 61 6e 64 20 74 68 65 20 72 65 6d 61 riggered.errors,.//.and.the.rema
00c0 69 6e 69 6e 67 20 74 65 6e 20 64 69 64 20 6e 6f 74 2e 20 42 75 74 20 74 68 69 73 20 69 73 20 64 ining.ten.did.not..But.this.is.d
00e0 69 66 66 65 72 65 6e 74 20 74 6f 20 61 6c 6c 20 74 68 65 20 6f 74 68 65 72 0a 2f 2f 20 63 6f 6e ifferent.to.all.the.other.//.con
0100 74 65 6e 74 20 63 68 65 63 6b 73 20 64 6f 6e 65 20 6f 6e 20 73 74 72 69 6e 67 20 6c 69 74 65 72 tent.checks.done.on.string.liter
0120 61 6c 73 2c 20 73 75 63 68 20 61 73 20 63 68 65 63 6b 73 20 66 6f 72 20 69 6e 76 61 6c 69 64 20 als,.such.as.checks.for.invalid.
0140 65 73 63 61 70 65 73 0a 2f 2f 20 61 6e 64 20 62 61 72 65 20 43 52 20 63 68 61 72 73 2e 20 53 6f escapes.//.and.bare.CR.chars..So
0160 20 74 68 65 20 63 68 65 63 6b 20 77 61 73 20 6d 6f 76 65 64 20 65 61 72 6c 69 65 72 2e 20 54 68 .the.check.was.moved.earlier..Th
0180 65 20 63 68 65 63 6b 20 63 61 6e 20 62 65 20 6d 6f 76 65 64 0a 2f 2f 20 62 61 63 6b 20 74 6f 20 e.check.can.be.moved.//.back.to.
01a0 61 66 74 65 72 20 65 78 70 61 6e 73 69 6f 6e 20 61 74 20 61 20 6c 61 74 65 72 20 64 61 74 65 20 after.expansion.at.a.later.date.
01c0 69 66 20 6e 65 63 65 73 73 61 72 79 2c 20 62 65 63 61 75 73 65 20 74 68 61 74 20 77 6f 75 6c 64 if.necessary,.because.that.would
01e0 20 62 65 0a 2f 2f 20 61 20 62 61 63 6b 77 61 72 64 20 63 6f 6d 70 61 74 69 62 6c 65 20 63 68 61 .be.//.a.backward.compatible.cha
0200 6e 67 65 2e 20 28 49 6e 20 63 6f 6e 74 72 61 73 74 2c 20 6d 6f 76 69 6e 67 20 74 68 65 20 63 68 nge..(In.contrast,.moving.the.ch
0220 65 63 6b 20 66 72 6f 6d 20 61 66 74 65 72 0a 2f 2f 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f 20 6c eck.from.after.//.expansion.to.l
0240 65 78 69 6e 67 20 74 69 6d 65 20 77 6f 75 6c 64 20 62 65 20 61 20 62 61 63 6b 77 61 72 64 20 69 exing.time.would.be.a.backward.i
0260 6e 63 6f 6d 70 61 74 69 62 6c 65 20 63 68 61 6e 67 65 2c 20 62 65 63 61 75 73 65 20 69 74 0a 2f ncompatible.change,.because.it./
0280 2f 20 63 6f 75 6c 64 20 62 72 65 61 6b 20 63 6f 64 65 20 74 68 61 74 20 77 61 73 20 70 72 65 76 /.could.break.code.that.was.prev
02a0 69 6f 75 73 6c 79 20 61 63 63 65 70 74 65 64 2e 29 0a 0a 66 6e 20 6d 61 69 6e 28 29 20 7b 0a 20 iously.accepted.)..fn.main().{..
02c0 20 20 20 63 22 5c 30 22 3b 20 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 ...c"\0";.....//~.ERROR.null.cha
02e0 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 racters.in.C.string.literals....
0300 20 63 22 5c 75 7b 30 30 7d 22 3b 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 .c"\u{00}";.//~.ERROR.null.chara
0320 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 63 cters.in.C.string.literals.....c
0340 22 00 22 3b 20 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 ".";.....//~.ERROR.null.characte
0360 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 63 22 5c 78 rs.in.C.string.literals.....c"\x
0380 30 30 22 3b 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 72 73 00";...//~.ERROR.null.characters
03a0 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 63 72 22 00 22 3b .in.C.string.literals.....cr".";
03c0 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e ....//~.ERROR.null.characters.in
03e0 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 7d 0a 0a 6d 61 63 72 6f 5f 72 75 6c 65 .C.string.literals.}..macro_rule
0400 73 21 20 65 6d 70 74 79 20 7b 0a 20 20 20 20 28 24 28 24 74 74 3a 74 74 29 2a 29 20 3d 3e 20 7b s!.empty.{.....($($tt:tt)*).=>.{
0420 7d 3b 0a 7d 0a 0a 2f 2f 20 54 68 65 20 63 66 67 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 73 75 6d };.}..//.The.cfg.does.not.consum
0440 65 20 74 68 65 20 6c 69 74 65 72 61 6c 73 20 62 65 66 6f 72 65 20 6e 75 6c 20 63 68 65 63 6b 69 e.the.literals.before.nul.checki
0460 6e 67 20 6f 63 63 75 72 73 2e 0a 23 5b 63 66 67 28 46 41 4c 53 45 29 5d 0a 66 6e 20 74 65 73 74 ng.occurs..#[cfg(FALSE)].fn.test
0480 28 29 20 7b 0a 20 20 20 20 63 22 5c 30 22 3b 20 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 ().{.....c"\0";.....//~.ERROR.nu
04a0 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 ll.characters.in.C.string.litera
04c0 6c 73 0a 20 20 20 20 63 22 5c 75 7b 30 30 7d 22 3b 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c ls.....c"\u{00}";.//~.ERROR.null
04e0 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 .characters.in.C.string.literals
0500 0a 20 20 20 20 63 22 00 22 3b 20 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 .....c".";.....//~.ERROR.null.ch
0520 61 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 aracters.in.C.string.literals...
0540 20 20 63 22 5c 78 30 30 22 3b 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 ..c"\x00";...//~.ERROR.null.char
0560 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 acters.in.C.string.literals.....
0580 63 72 22 00 22 3b 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 cr".";....//~.ERROR.null.charact
05a0 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 7d 0a 0a 2f 2f 20 54 ers.in.C.string.literals.}..//.T
05c0 68 65 20 6d 61 63 72 6f 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 73 75 6d 65 20 74 68 65 20 6c 69 he.macro.does.not.consume.the.li
05e0 74 65 72 61 6c 73 20 62 65 66 6f 72 65 20 6e 75 6c 20 63 68 65 63 6b 69 6e 67 20 6f 63 63 75 72 terals.before.nul.checking.occur
0600 73 2e 0a 66 6e 20 74 65 73 74 5f 65 6d 70 74 79 28 29 20 7b 0a 20 20 20 20 65 6d 70 74 79 21 28 s..fn.test_empty().{.....empty!(
0620 63 22 5c 30 22 29 3b 20 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 c"\0");.....//~.ERROR.null.chara
0640 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 65 cters.in.C.string.literals.....e
0660 6d 70 74 79 21 28 63 22 5c 75 7b 30 30 7d 22 29 3b 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c mpty!(c"\u{00}");.//~.ERROR.null
0680 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 .characters.in.C.string.literals
06a0 0a 20 20 20 20 65 6d 70 74 79 21 28 63 22 00 22 29 3b 20 20 20 20 20 2f 2f 7e 20 45 52 52 4f 52 .....empty!(c".");.....//~.ERROR
06c0 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 6e 67 20 6c 69 74 .null.characters.in.C.string.lit
06e0 65 72 61 6c 73 0a 20 20 20 20 65 6d 70 74 79 21 28 63 22 5c 78 30 30 22 29 3b 20 20 20 2f 2f 7e erals.....empty!(c"\x00");...//~
0700 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 43 20 73 74 72 69 .ERROR.null.characters.in.C.stri
0720 6e 67 20 6c 69 74 65 72 61 6c 73 0a 20 20 20 20 65 6d 70 74 79 21 28 63 72 22 00 22 29 3b 20 20 ng.literals.....empty!(cr".");..
0740 20 20 2f 2f 7e 20 45 52 52 4f 52 20 6e 75 6c 6c 20 63 68 61 72 61 63 74 65 72 73 20 69 6e 20 43 ..//~.ERROR.null.characters.in.C
0760 20 73 74 72 69 6e 67 20 6c 69 74 65 72 61 6c 73 0a 7d 0a .string.literals.}.