From: Jakub Jelinek Date: Fri, 6 Oct 2006 07:10:55 +0000 (+0200) Subject: scanner.c (skip_free_comments): Return bool instead of void. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0d3abf6f9e44a3341754463170ff12d504e77530;p=gcc.git scanner.c (skip_free_comments): Return bool instead of void. * scanner.c (skip_free_comments): Return bool instead of void. (gfc_next_char_literal): Don't return ' ' if & is missing after !$omp or !$. Use skip_{free,fixed}_comments directly instead of gfc_skip_comments. From-SVN: r117480 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 73715f940be..58c13205caa 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,10 @@ +2006-10-06 Jakub Jelinek + + * scanner.c (skip_free_comments): Return bool instead of void. + (gfc_next_char_literal): Don't return ' ' if & is missing after + !$omp or !$. Use skip_{free,fixed}_comments directly instead + of gfc_skip_comments. + 2006-10-04 Brooks Moses * gfortran.texi: (Current Status): update and rewrite to reflect diff --git a/gcc/fortran/scanner.c b/gcc/fortran/scanner.c index 59b2e704bfa..a5c0f4f0f00 100644 --- a/gcc/fortran/scanner.c +++ b/gcc/fortran/scanner.c @@ -327,9 +327,11 @@ skip_comment_line (void) /* Comment lines are null lines, lines containing only blanks or lines - on which the first nonblank line is a '!'. */ + on which the first nonblank line is a '!'. + Return true if !$ openmp conditional compilation sentinel was + seen. */ -static void +static bool skip_free_comments (void) { locus start; @@ -379,7 +381,7 @@ skip_free_comments (void) openmp_flag = 1; openmp_locus = old_loc; gfc_current_locus = start; - return; + return false; } } gfc_current_locus = old_loc; @@ -390,7 +392,7 @@ skip_free_comments (void) { gfc_current_locus = old_loc; next_char (); - return; + return true; } } gfc_current_locus = old_loc; @@ -405,6 +407,7 @@ skip_free_comments (void) if (openmp_flag && at_bol) openmp_flag = 0; gfc_current_locus = start; + return false; } @@ -597,6 +600,8 @@ restart: if (gfc_current_form == FORM_FREE) { + bool openmp_cond_flag; + if (!in_string && c == '!') { if (openmp_flag @@ -668,7 +673,7 @@ restart: continue_line = gfc_current_locus.lb->linenum; /* Now find where it continues. First eat any comment lines. */ - gfc_skip_comments (); + openmp_cond_flag = skip_free_comments (); if (prev_openmp_flag != openmp_flag) { @@ -709,6 +714,10 @@ restart: gfc_warning_now ("Missing '&' in continued character constant at %C"); gfc_current_locus.nextc--; } + /* Both !$omp and !$ -fopenmp continuation lines have & on the + continuation line only optionally. */ + else if (openmp_flag || openmp_cond_flag) + gfc_current_locus.nextc--; else { c = ' '; @@ -741,7 +750,7 @@ restart: old_loc = gfc_current_locus; gfc_advance_line (); - gfc_skip_comments (); + skip_fixed_comments (); /* See if this line is a continuation line. */ if (openmp_flag != prev_openmp_flag)