From Jason Turner

[cpp.line]

Diff to HTML by rtfpessoa

tmp/tmptf8qxump/{from.md → to.md} RENAMED
@@ -1,13 +1,15 @@
1
  ## Line control <a id="cpp.line">[[cpp.line]]</a>
2
 
3
  The *string-literal* of a `#line` directive, if present, shall be a
4
  character string literal.
5
 
6
- The *line number* of the current source line is one greater than the
7
- number of new-line characters read or introduced in translation phase 1
8
- [[lex.phases]] while processing the source file to the current token.
 
 
9
 
10
  A preprocessing directive of the form
11
 
12
  ``` bnf
13
  '# line' digit-sequence new-line
@@ -15,11 +17,11 @@ A preprocessing directive of the form
15
 
16
  causes the implementation to behave as if the following sequence of
17
  source lines begins with a source line that has a line number as
18
  specified by the digit sequence (interpreted as a decimal integer). If
19
  the digit sequence specifies zero or a number greater than 2147483647,
20
- the behavior is undefined.
21
 
22
  A preprocessing directive of the form
23
 
24
  ``` bnf
25
  '# line' digit-sequence '"' s-char-sequenceₒₚₜ '"' new-line
@@ -37,8 +39,8 @@ A preprocessing directive of the form
37
  (that does not match one of the two previous forms) is permitted. The
38
  preprocessing tokens after `line` on the directive are processed just as
39
  in normal text (each identifier currently defined as a macro name is
40
  replaced by its replacement list of preprocessing tokens). If the
41
  directive resulting after all replacements does not match one of the two
42
- previous forms, the behavior is undefined; otherwise, the result is
43
  processed as appropriate.
44
 
 
1
  ## Line control <a id="cpp.line">[[cpp.line]]</a>
2
 
3
  The *string-literal* of a `#line` directive, if present, shall be a
4
  character string literal.
5
 
6
+ The *line number* of the current source line is the line number of the
7
+ current physical source line, i.e., it is one greater than the number of
8
+ new-line characters read or introduced in translation phase 1
9
+ [[lex.phases]] while processing the source file to the current
10
+ preprocessing token.
11
 
12
  A preprocessing directive of the form
13
 
14
  ``` bnf
15
  '# line' digit-sequence new-line
 
17
 
18
  causes the implementation to behave as if the following sequence of
19
  source lines begins with a source line that has a line number as
20
  specified by the digit sequence (interpreted as a decimal integer). If
21
  the digit sequence specifies zero or a number greater than 2147483647,
22
+ the program is ill-formed.
23
 
24
  A preprocessing directive of the form
25
 
26
  ``` bnf
27
  '# line' digit-sequence '"' s-char-sequenceₒₚₜ '"' new-line
 
39
  (that does not match one of the two previous forms) is permitted. The
40
  preprocessing tokens after `line` on the directive are processed just as
41
  in normal text (each identifier currently defined as a macro name is
42
  replaced by its replacement list of preprocessing tokens). If the
43
  directive resulting after all replacements does not match one of the two
44
+ previous forms, the program is ill-formed; otherwise, the result is
45
  processed as appropriate.
46