This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, fortran] PR19262 more than thirty-nine continuation lines should issue a std-warn


:REVIEWMAIL:

Here is what I have implemented in response to comments. (see attached patch and test cases)

Default warn limits set to fixed form 19, free form 39.
With -std=f2003, fixed form warn limit set to 255, free form warn limit set to 255.

I decided to set the limit thresholds this way after digging out my old Fortran
IV book and low and behold, the limit of 19 continuations. The Fortran 66
standard states 19. The F77 standard states 19. And of course, for free form F95
it is 39. (I do not have an F90 standard)

I am using gfc_notification_std (GFC_STD_GNU) so that a warning is issued if the
 respective limit is exceeded and the user specifies -std=f95 or -std=f2003.

As stated elsewhere in this thread, the requirement for these limits is on
the programmer, not the compiler, so we only warn.

I moved the setting of the limits to options.c where it belongs.

I am also issuing a warning if the respective limit is exceeded when -pedantic
is given, regardless of any -std specified.  This allows at least checking to
see if you are under the respective limit.

Naturally, -w will suppress any warning.

There is no actual limit on the number of continuation lines used.

I did not want to add yet another option to allow explicit setting of the limit
values.  It does not seem necessary.

Regression tested and NIST tested. Test cases included.

The patch contains the fix for PR19260 as well.

OK for trunk?

2006-09-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR fortran/19262
	* options.c (gfc_init_options): Initialize fixed form and free form
	consecutive continuation line limits.
	* scanner.c (gfc_scanner_init_1): Initialize continue_line
	and continue_count. (gfc_next_char_literal): Count the number of
	continuation lines in the current statement and warn if
	limit is exceeded.

2006-09-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>

	PR fortran/19260
	* scanner.c (gfc_next_char_literal): Add check for missing '&'
	and set locus to old_locus when not scanning a character literal.


Index: options.c
===================================================================
*** options.c	(revision 117246)
--- options.c	(working copy)
*************** gfc_init_options (unsigned int argc ATTR
*** 48,53 ****
--- 48,55 ----
    gfc_option.source_form = FORM_UNKNOWN;
    gfc_option.fixed_line_length = -1;
    gfc_option.free_line_length = -1;
+   gfc_option.max_continue_fixed = 19;
+   gfc_option.max_continue_free = 39;
    gfc_option.max_identifier_length = GFC_MAX_SYMBOL_LEN;
    gfc_option.verbose = 0;
  
*************** gfc_handle_option (size_t scode, const c
*** 586,591 ****
--- 588,595 ----
        gfc_option.allow_std = GFC_STD_F95_OBS | GFC_STD_F77 
  	| GFC_STD_F2003 | GFC_STD_F95;
        gfc_option.warn_std = GFC_STD_F95_OBS;
+       gfc_option.max_continue_fixed = 255;
+       gfc_option.max_continue_free = 255;
        gfc_option.max_identifier_length = 63;
        gfc_option.warn_ampersand = 1;
        break;
Index: scanner.c
===================================================================
*** scanner.c	(revision 117246)
--- scanner.c	(working copy)
*************** static gfc_directorylist *include_dirs;
*** 61,66 ****
--- 61,67 ----
  static gfc_file *file_head, *current_file;
  
  static int continue_flag, end_flag, openmp_flag;
+ static int continue_count, continue_line;
  static locus openmp_locus;
  
  gfc_source_form gfc_current_form;
*************** const char *gfc_source_file;
*** 71,76 ****
--- 72,78 ----
  static FILE *gfc_src_file;
  static char *gfc_src_preprocessor_lines[2];
  
+ extern int pedantic;
  
  /* Main scanner initialization.  */
  
*************** gfc_scanner_init_1 (void)
*** 81,86 ****
--- 83,91 ----
    line_head = NULL;
    line_tail = NULL;
  
+   continue_count = 0;
+   continue_line = 0;
+ 
    end_flag = 0;
  }
  
*************** gfc_next_char_literal (int in_string)
*** 585,591 ****
  restart:
    c = next_char ();
    if (gfc_at_end ())
!     return c;
  
    if (gfc_current_form == FORM_FREE)
      {
--- 590,599 ----
  restart:
    c = next_char ();
    if (gfc_at_end ())
!     {
!       continue_count = 0;
!       return c;
!     }
  
    if (gfc_current_form == FORM_FREE)
      {
*************** restart:
*** 644,651 ****
        else
  	gfc_advance_line ();
  
!       /* We've got a continuation line and need to find where it continues.
! 	 First eat any comment lines.  */
        gfc_skip_comments ();
  
        if (prev_openmp_flag != openmp_flag)
--- 652,673 ----
        else
  	gfc_advance_line ();
  
!       /* We've got a continuation line.  If we are on the very next line after
! 	 the last continuation, increment the continuation line count and
! 	 check whether the limit has been exceeded.  */
!       if (gfc_current_locus.lb->linenum == continue_line + 1)
! 	{
! 	  if (++continue_count == gfc_option.max_continue_free)
! 	    {
! 	      if (gfc_notification_std (GFC_STD_GNU)
! 		  || pedantic)
! 		gfc_warning ("Limit of %d continuations exceeded in statement at %C",
! 			      gfc_option.max_continue_free);
! 	    }
! 	}
!       continue_line = gfc_current_locus.lb->linenum;
! 
!       /* Now find where it continues. First eat any comment lines.  */
        gfc_skip_comments ();
  
        if (prev_openmp_flag != openmp_flag)
*************** restart:
*** 681,690 ****
  
        if (c != '&')
  	{
! 	  if (in_string && gfc_option.warn_ampersand)
! 	    gfc_warning ("Missing '&' in continued character constant at %C");
! 
! 	  gfc_current_locus.nextc--;
  	}
      }
    else
--- 703,720 ----
  
        if (c != '&')
  	{
! 	  if (in_string)
! 	    {
! 	      if (gfc_option.warn_ampersand)
! 		gfc_warning_now ("Missing '&' in continued character constant at %C");
! 	      gfc_current_locus.nextc--;
! 	    }
! 	  else
! 	    {
! 	      c = ' ';
! 	      gfc_current_locus = old_loc;
! 	      goto done;
! 	    }
  	}
      }
    else
*************** restart:
*** 738,743 ****
--- 768,790 ----
        c = next_char ();
        if (c == '0' || c == ' ' || c == '\n')
  	goto not_continuation;
+ 
+       /* We've got a continuation line.  If we are on the very next line after
+ 	 the last continuation, increment the continuation line count and
+ 	 check whether the limit has been exceeded.  */
+       if (gfc_current_locus.lb->linenum == continue_line + 1)
+ 	{
+ 	  if (++continue_count == gfc_option.max_continue_fixed)
+ 	    {
+ 	      if (gfc_notification_std (GFC_STD_GNU)
+ 		  || pedantic)
+ 		gfc_warning ("Limit of %d continuations exceeded in statement at %C",
+ 			      gfc_option.max_continue_fixed);
+ 	    }
+ 	}
+ 
+       if (continue_line < gfc_current_locus.lb->linenum)
+ 	continue_line = gfc_current_locus.lb->linenum;
      }
  
    /* Ready to read first character of continuation line, which might
*************** not_continuation:
*** 749,754 ****
--- 796,803 ----
    gfc_current_locus = old_loc;
  
  done:
+   if (c == '\n')
+     continue_count = 0;
    continue_flag = 0;
    return c;
  }
! { dg-do run }
! { dg-options -Wampersand }
! PR 19101  Test line continuations and spaces.  Note: the missing ampersand
! before "world" is non standard default behavior.  Use -std=f95, -std=f2003,
! -pedantic, -Wall, or -Wampersand to catch this error
! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
program main
  character (len=40) &
  c
  c = "Hello, &
         world!" ! { dg-warning "Warning: Missing '&' in continued character constant" }
  if (c.ne.&
                                   "Hello, world!")&
                               call abort();end program main

! { dg-do compile }
! PR 19260  Test line continuations and spaces.
! Submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>.
x = si&  ! { dg-error "Unclassifiable statement" }
n(3.14159/2)
end
! { dg-do compile }
! { dg-options -pedantic }
! PR 19262  Test limit on line continuations. Test case derived form case in PR
! by Steve Kargl.  Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
print *, &
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9"
print *, &
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0"      ! { dg-warning "Limit of 39 continuations exceeded" }

end
! { dg-do compile }
! { dg-options -std=f2003 }
! PR 19262  Test limit on line continuations. Test case derived form case in PR
! by Steve Kargl.  Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
print *, &
       "1" // & !  1  Counting in groups of 40.
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0" // & ! 40
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0" // & ! 80
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0" // & ! 120
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0" // & ! 160
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0" // & ! 200
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 15
       "6" // & ! 16
       "7" // & ! 17
       "8" // & ! 18
       "9" // & ! 19
       "0" // & ! 20
       "1" // & ! 21
       "2" // & ! 22
       "3" // & ! 23
       "4" // & ! 24
       "5" // & ! 25
       "6" // & ! 26
       "7" // & ! 27
       "8" // & ! 28
       "9" // & ! 29
       "0" // & ! 30
       "1" // & ! 31
       "2" // & ! 32
       "3" // & ! 33
       "4" // & ! 34
       "5" // & ! 35
       "6" // & ! 36
       "7" // & ! 37
       "8" // & ! 38
       "9" // & ! 39
       "0" // & ! 240
       "1" // & !  1
       "2" // & !  2
       "3" // & !  3
       "4" // & !  4
       "5" // & !  5
       "6" // & !  6
       "7" // & !  7
       "8" // & !  8
       "9" // & !  9
       "0" // & ! 10
       "1" // & ! 11
       "2" // & ! 12
       "3" // & ! 13
       "4" // & ! 14
       "5" // & ! 255
       "0"      ! { dg-warning "Limit of 255 continuations exceeded" }
end
! { dg-do compile }
! { dg-options -pedantic }
! PR 19262  Test limit on line continuations. Test case derived form case in PR
! by Steve Kargl.  Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
       print *,
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9"    ! 19
       print *,
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0"    ! { dg-warning "Limit of 19 continuations exceeded" }
       end
! { dg-do compile }
! { dg-options -std=f2003 }
! PR 19262  Test limit on line continuations. Test case derived form case in PR
! by Steve Kargl.  Submitted by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
       print *,
     c "1" // !  1 Counting by 40.
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0" // ! 20
     c "1" // ! 21
     c "2" // ! 22
     c "3" // ! 23
     c "4" // ! 24
     c "5" // ! 25
     c "6" // ! 26
     c "7" // ! 27
     c "8" // ! 28
     c "9" // ! 29
     c "0" // ! 30
     c "1" // ! 31
     c "2" // ! 32
     c "3" // ! 33
     c "4" // ! 34
     c "5" // ! 35
     c "6" // ! 36
     c "7" // ! 37
     c "8" // ! 38
     c "9" // ! 39
     c "0" // ! 40
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0" // ! 20
     c "1" // ! 21
     c "2" // ! 22
     c "3" // ! 23
     c "4" // ! 24
     c "5" // ! 25
     c "6" // ! 26
     c "7" // ! 27
     c "8" // ! 28
     c "9" // ! 29
     c "0" // ! 30
     c "1" // ! 31
     c "2" // ! 32
     c "3" // ! 33
     c "4" // ! 34
     c "5" // ! 35
     c "6" // ! 36
     c "7" // ! 37
     c "8" // ! 38
     c "9" // ! 39
     c "0" // ! 80
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0" // ! 20
     c "1" // ! 21
     c "2" // ! 22
     c "3" // ! 23
     c "4" // ! 24
     c "5" // ! 25
     c "6" // ! 26
     c "7" // ! 27
     c "8" // ! 28
     c "9" // ! 29
     c "0" // ! 30
     c "1" // ! 31
     c "2" // ! 32
     c "3" // ! 33
     c "4" // ! 34
     c "5" // ! 35
     c "6" // ! 36
     c "7" // ! 37
     c "8" // ! 38
     c "9" // ! 39
     c "0" // ! 120
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0" // ! 20
     c "1" // ! 21
     c "2" // ! 22
     c "3" // ! 23
     c "4" // ! 24
     c "5" // ! 25
     c "6" // ! 26
     c "7" // ! 27
     c "8" // ! 28
     c "9" // ! 29
     c "0" // ! 30
     c "1" // ! 31
     c "2" // ! 32
     c "3" // ! 33
     c "4" // ! 34
     c "5" // ! 35
     c "6" // ! 36
     c "7" // ! 37
     c "8" // ! 38
     c "9" // ! 39
     c "0" // ! 160
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0" // ! 20
     c "1" // ! 21
     c "2" // ! 22
     c "3" // ! 23
     c "4" // ! 24
     c "5" // ! 25
     c "6" // ! 26
     c "7" // ! 27
     c "8" // ! 28
     c "9" // ! 29
     c "0" // ! 30
     c "1" // ! 31
     c "2" // ! 32
     c "3" // ! 33
     c "4" // ! 34
     c "5" // ! 35
     c "6" // ! 36
     c "7" // ! 37
     c "8" // ! 38
     c "9" // ! 39
     c "0" // ! 200
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 15
     c "6" // ! 16
     c "7" // ! 17
     c "8" // ! 18
     c "9" // ! 19
     c "0" // ! 20
     c "1" // ! 21
     c "2" // ! 22
     c "3" // ! 23
     c "4" // ! 24
     c "5" // ! 25
     c "6" // ! 26
     c "7" // ! 27
     c "8" // ! 28
     c "9" // ! 29
     c "0" // ! 30
     c "1" // ! 31
     c "2" // ! 32
     c "3" // ! 33
     c "4" // ! 34
     c "5" // ! 35
     c "6" // ! 36
     c "7" // ! 37
     c "8" // ! 38
     c "9" // ! 39
     c "0" // ! 240
     c "1" // !  1
     c "2" // !  2
     c "3" // !  3
     c "4" // !  4
     c "5" // !  5
     c "6" // !  6
     c "7" // !  7
     c "8" // !  8
     c "9" // !  9
     c "0" // ! 10
     c "1" // ! 11
     c "2" // ! 12
     c "3" // ! 13
     c "4" // ! 14
     c "5" // ! 255 
     c "6"    ! { dg-warning "Limit of 255 continuations exceeded" }
     
       end
       

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]