X hits on this document

901 views

0 shares

0 downloads

0 comments

178 / 396

Chapter ‎18   Unsafe code

There are two situations in which it is a compile-time error for the end point of a statement to be reachable:

Because the switch statement does not permit a switch section to “fall through” to the next switch section, it is a compile-time error for the end point of the statement list of a switch section to be reachable. If this error occurs, it is typically an indication that a break statement is missing.

It is a compile-time error for the end point of the block of a function member that computes a value to be reachable. If this error occurs, it typically is an indication that a return statement is missing.

8.2 Blocks

A block permits multiple statements to be written in contexts where a single statement is allowed.

block: {   statement-listopt   }

A block consists of an optional statement-list (§‎8.2.1), enclosed in braces. If the statement list is omitted, the block is said to be empty.

A block may contain declaration statements (§‎8.5). The scope of a local variable or constant declared in a block is the block.

Within a block, the meaning of a name used in an expression context must always be the same (§‎7.5.2.1).

A block is executed as follows:

If the block is empty, control is transferred to the end point of the block.

If the block is not empty, control is transferred to the statement list. When and if control reaches the end point of the statement list, control is transferred to the end point of the block.

The statement list of a block is reachable if the block itself is reachable.

The end point of a block is reachable if the block is empty or if the end point of the statement list is reachable.

8.2.1 Statement lists

A statement list consists of one or more statements written in sequence. Statement lists occur in blocks (§‎8.2) and in switch-blocks (§‎8.7.2).

statement-list: statement statement-list   statement

A statement list is executed by transferring control to the first statement. When and if control reaches the end point of a statement, control is transferred to the next statement. When and if control reaches the end point of the last statement, control is transferred to the end point of the statement list.

A statement in a statement list is reachable if at least one of the following is true:

The statement is the first statement and the statement list itself is reachable.

The end point of the preceding statement is reachable.

The statement is a labeled statement and the label is referenced by a reachable goto statement.

The end point of a statement list is reachable if the end point of the last statement in the list is reachable.

8.3 The empty statement

An empty-statement does nothing.

empty-statement: ;

Copyright Microsoft Corporation 1999-2003. All Rights Reserved.165

Document info
Document views901
Page views901
Page last viewedTue Dec 06 17:56:49 UTC 2016
Pages396
Paragraphs9401
Words133190

Comments