Adriaan van Os wrote:
Frank Heckenbach wrote:
willett wrote:
program file attached is a program missing a "}" which should get compilation error, but which compiles without errors and when run, gets a "Segmentation fault" and quits.
It compiles fine on my system using 20041218.
As Russ wrote, the program should compile, since in Pascal comments cannot be nested, i.e. the one `}' terminates the comment, even if it contains additional `{'s.
In the ISO Pascal Standard Report (Jensen, Wirth, third edition) I read at the end of Section 5:
Comment = { "{" | "(*" ) { CommentElement } ( "}" | "*)" ) .
A CommentElement is either an end of line or any sequence of characters not containing "}" or "*)".
Notes: { ...*) and (* ...} are valid comments. The comment {(*) is equivalent to the comment {(}.
This means that {{} is a valid comment, but {}} isn't, according to the standard. Several other Pascal compilers, however, only allow (*.. { .. } .. *) or { .. (* .. *) .. }. But, as Frank noted, you can use the --nested-comments option in GPC to get similar behaviour.
This would be `--no-mixed-comments' which is set (i.e. "no") by default, except in standard Pascal modes.
Frank