/* This testcase is part of GDB, the GNU debugger.

   Copyright 2025 Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */

int
main (void)
{
  /* Line 21  */
  /* Line 22  */
  /* Line 23  */
  /* Line 24  */
  /* Line 25  */
  /* Line 26  */
  /* Line 27  */
  /* Line 28  */
  /* Line 29  */
  /* Line 30  */
  /* Line 31  */
  /* Line 32  */
  /* Line 33  */
  /* Line 34  */
  /* Line 35  */
  /* Line 36  */
  /* Line 37  */
  /* Line 38  */
  /* Line 39  */
  /* Line 40  */
  /* Line 41  */
  /* Line 42  */
  /* Line 43  */
  /* Line 44  */
  /* Line 45  */
  /* Line 46  */
  /* Line 47  */
  /* Line 48  */
  /* Line 49  */
  /* Line 50  */
  /* Line 51  */
  /* Line 52  */
  /* Line 53  */
  /* Line 54  */
  /* Line 55  */
  /* Line 56  */
  /* Line 57  */
  /* Line 58  */
  /* Line 59  */
  /* Line 60  */
  /* Line 61  */
  /* Line 62  */
  /* Line 63  */
  /* Line 64  */
  /* Line 65  */
  /* Line 66  */
  /* Line 67  */
  /* Line 68  */
  /* Line 69  */
  /* Line 70  */
  /* Line 71  */
  /* Line 72  */
  /* Line 73  */
  /* Line 74  */
  /* Line 75  */
  /* Line 76  */
  /* Line 77  */
  /* Line 78  */
  /* Line 79  */
  /* Line 80  */
  /* Line 81  */
  /* Line 82  */
  /* Line 83  */
  /* Line 84  */
  /* Line 85  */
  /* Line 86  */
  /* Line 87  */
  /* Line 88  */
  /* Line 89  */
  /* Line 90  */
  /* Line 91  */
  /* Line 92  */
  /* Line 93  */
  /* Line 94  */
  /* Line 95  */
  /* Line 96  */
  /* Line 97  */
  /* Line 98  */
  /* Line 99  */
  /* Line 100 */
  /* Line 101 */
  /* Line 102 */
  /* Line 103 */
  /* Line 104 */
  /* Line 105 */
  /* Line 106 */
  /* Line 107 */
  /* Line 108 */
  /* Line 109 */
  /* Line 110 */
  /* Line 111 */
  /* Line 112 */
  /* Line 113 */
  /* Line 114 */
  /* Line 115 */
  /* Line 116 */
  /* Line 117 */
  /* Line 118 */
  /* Line 119 */
  /* Line 120 */
  /* Line 121 */
  /* Line 122 */
  /* Line 123 */
  /* Line 124 */
  /* Line 125 */
  return 0;
} /* Last line.  */
