# This testcase is part of GDB, the GNU debugger.

# Copyright 1992, 1994-1997, 1999-2000, 2002-2004, 2007-2012 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/>.

# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@gnu.org

# This file was written by Fred Fish. (fnf@cygnus.com)

set testfile "printcmds"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
     untested printcmds.exp
     return -1
}

get_compiler_info

proc test_integer_literals_accepted {} {
    global gdb_prompt

    # Test various decimal values.

    gdb_test "p 123" " = 123"
    gdb_test "p -123" " = -123"
    gdb_test "p/d 123" " = 123"

    # Test various octal values.

    gdb_test "p 0123" " = 83"
    gdb_test "p 00123" " = 83"
    gdb_test "p -0123" " = -83"
    gdb_test "p/o 0123" " = 0123"

    # Test various hexadecimal values.

    gdb_test "p 0x123" " = 291"
    gdb_test "p -0x123" " = -291"
    gdb_test "p 0x0123" " = 291"
    gdb_test "p -0x0123" " = -291"
    gdb_test "p 0xABCDEF" " = 11259375"
    gdb_test "p 0xabcdef" " = 11259375"
    gdb_test "p 0xAbCdEf" " = 11259375"
    gdb_test "p/x 0x123" " = 0x123"

    # Test various binary values.

    gdb_test "p 0b0" " = 0"
    gdb_test "p 0b1111" " = 15"
    gdb_test "p 0B1111" " = 15"
    gdb_test "p -0b1111" " = -15"
}

proc test_character_literals_accepted {} {
    global gdb_prompt

    gdb_test "p 'a'" " = 97 'a'"
    gdb_test "p/c 'a'" " = 97 'a'"
    gdb_test "p/x 'a'" " = 0x61"
    gdb_test "p/d 'a'" " = 97"
    gdb_test "p/t 'a'" " = 1100001"
    gdb_test "p '\\141'" " = 97 'a'"
    gdb_test "p/x '\\377'" " = 0xff"
    # Note "p '\''" => "= 39 '\''"
    gdb_test "p '\\''" " = 39 '\\\\''"
    # Note "p '\\'" => "= 92 '\\'"
    gdb_test "p '\\\\'" " = 92 '\\\\\\\\'"
}

proc test_integer_literals_rejected {} {
    global gdb_prompt

    test_print_reject "p 0x"
    test_print_reject "p 0b"
    gdb_test "p ''" "(Empty character constant\\.|A character constant must contain at least one character\\.)"
    gdb_test "p '''" "(Empty character constant\\.|A character constant must contain at least one character\\.)"
    test_print_reject "p '\\'"

    # Note that this turns into "p '\\\'" at gdb's input.
    test_print_reject "p '\\\\\\'"

    # Test various decimal values.

    test_print_reject "p DEADBEEF"

    # Test various octal values.

    test_print_reject "p 09" 
    test_print_reject "p 079" 

    # Test various hexadecimal values.

    test_print_reject "p 0xG" 
    test_print_reject "p 0xAG" 

    # Test various binary values.

    test_print_reject "p 0b2" 
    test_print_reject "p 0b12" 
}

proc test_float_accepted {} {
    global gdb_prompt

    # This test is useful to catch successful parsing of the first fp value.
    gdb_test "p 123.4+56.7" " = 180.(099\[0-9]*|100\[0-9\]*)" "check for floating addition"

    # Test all the suffixes (including no suffix).
    gdb_test "p 1." " = 1"
    gdb_test "p 1.5" " = 1.5"
    gdb_test "p 1.f" " = 1"
    gdb_test "p 1.5f" " = 1.5"
    gdb_test "p 1.l" " = 1"
    gdb_test "p 1.5l" " = 1.5"

    # Test hexadecimal floating point.
    set test "p 0x1.1"
    gdb_test_multiple $test $test {
	-re " = 1\\.0625\r\n$gdb_prompt $" {
	    pass $test
	}
	-re "Invalid number \"0x1\\.1\"\\.\r\n$gdb_prompt $" {
	    # Older glibc does not support hex float, newer does.
	    xfail $test
	}
    }
}

proc test_float_rejected {} {
    # Gdb use to fail this test for all configurations.  The C
    # lexer thought that 123DEADBEEF was a floating point number, but
    # then failed to notice that atof() only eats the 123 part.
    # Fixed, 4/25/97, by Bob Manson.
    test_print_reject "p 123DEADBEEF"

    test_print_reject "p 123foobar.bazfoo3"
    test_print_reject "p 123EEEEEEEEEEEEEEEEE33333k333"

    # Test bad suffixes.
    test_print_reject "p 1.1x"
    test_print_reject "p 1.1ff"
    test_print_reject "p 1.1ll"
}

proc test_print_all_chars {} {
    global gdb_prompt

    gdb_test "p ctable1\[0\]"   " = 0 '\\\\000'"
    gdb_test "p ctable1\[1\]"   " = 1 '\\\\001'"
    gdb_test "p ctable1\[2\]"   " = 2 '\\\\002'"
    gdb_test "p ctable1\[3\]"   " = 3 '\\\\003'"
    gdb_test "p ctable1\[4\]"   " = 4 '\\\\004'"
    gdb_test "p ctable1\[5\]"   " = 5 '\\\\005'"
    gdb_test "p ctable1\[6\]"   " = 6 '\\\\006'"
    gdb_test "p ctable1\[7\]"   " = 7 '\\\\a'"
    gdb_test "p ctable1\[8\]"   " = 8 '\\\\b'"
    gdb_test "p ctable1\[9\]"   " = 9 '\\\\t'"
    gdb_test "p ctable1\[10\]"  " = 10 '\\\\n'"
    gdb_test "p ctable1\[11\]"  " = 11 '\\\\v'"
    gdb_test "p ctable1\[12\]"  " = 12 '\\\\f'"
    gdb_test "p ctable1\[13\]"  " = 13 '\\\\r'"
    gdb_test "p ctable1\[14\]"  " = 14 '\\\\016'"
    gdb_test "p ctable1\[15\]"  " = 15 '\\\\017'"
    gdb_test "p ctable1\[16\]"  " = 16 '\\\\020'"
    gdb_test "p ctable1\[17\]"  " = 17 '\\\\021'"
    gdb_test "p ctable1\[18\]"  " = 18 '\\\\022'"
    gdb_test "p ctable1\[19\]"  " = 19 '\\\\023'"
    gdb_test "p ctable1\[20\]"  " = 20 '\\\\024'"
    gdb_test "p ctable1\[21\]"  " = 21 '\\\\025'"
    gdb_test "p ctable1\[22\]"  " = 22 '\\\\026'"
    gdb_test "p ctable1\[23\]"  " = 23 '\\\\027'"
    gdb_test "p ctable1\[24\]"  " = 24 '\\\\030'"
    gdb_test "p ctable1\[25\]"  " = 25 '\\\\031'"
    gdb_test "p ctable1\[26\]"  " = 26 '\\\\032'"
    gdb_test "p ctable1\[27\]"  " = 27 '\\\\033'"
    gdb_test "p ctable1\[28\]"  " = 28 '\\\\034'"
    gdb_test "p ctable1\[29\]"  " = 29 '\\\\035'"
    gdb_test "p ctable1\[30\]"  " = 30 '\\\\036'"
    gdb_test "p ctable1\[31\]"  " = 31 '\\\\037'"
    gdb_test "p ctable1\[32\]"  " = 32 ' '"
    gdb_test "p ctable1\[33\]"  " = 33 '!'"
    gdb_test "p ctable1\[34\]"  " = 34 '\"'"
    gdb_test "p ctable1\[35\]"  " = 35 '#'"
    gdb_test "p ctable1\[36\]"  " = 36 '\\\$'"
    gdb_test "p ctable1\[37\]"  " = 37 '%'"
    gdb_test "p ctable1\[38\]"  " = 38 '&'"
    gdb_test "p ctable1\[39\]"  " = 39 '\\\\''"
    gdb_test "p ctable1\[40\]"  " = 40 '\\('"
    gdb_test "p ctable1\[41\]"  " = 41 '\\)'"
    gdb_test "p ctable1\[42\]"  " = 42 '\\*'"
    gdb_test "p ctable1\[43\]"  " = 43 '\\+'"
    gdb_test "p ctable1\[44\]"  " = 44 ','"
    gdb_test "p ctable1\[45\]"  " = 45 '-'"
    gdb_test "p ctable1\[46\]"  " = 46 '.'"
    gdb_test "p ctable1\[47\]"  " = 47 '/'"
    gdb_test "p ctable1\[48\]"  " = 48 '0'"
    gdb_test "p ctable1\[49\]"  " = 49 '1'"
    gdb_test "p ctable1\[50\]"  " = 50 '2'"
    gdb_test "p ctable1\[51\]"  " = 51 '3'"
    gdb_test "p ctable1\[52\]"  " = 52 '4'"
    gdb_test "p ctable1\[53\]"  " = 53 '5'"
    gdb_test "p ctable1\[54\]"  " = 54 '6'"
    gdb_test "p ctable1\[55\]"  " = 55 '7'"
    gdb_test "p ctable1\[56\]"  " = 56 '8'"
    gdb_test "p ctable1\[57\]"  " = 57 '9'"
    gdb_test "p ctable1\[58\]"  " = 58 ':'"
    gdb_test "p ctable1\[59\]"  " = 59 ';'"
    gdb_test "p ctable1\[60\]"  " = 60 '<'"
    gdb_test "p ctable1\[61\]"  " = 61 '='"
    gdb_test "p ctable1\[62\]"  " = 62 '>'"
    gdb_test "p ctable1\[63\]"  " = 63 '\\?'"
    gdb_test "p ctable1\[64\]"  " = 64 '@'"
    gdb_test "p ctable1\[65\]"  " = 65 'A'"
    gdb_test "p ctable1\[66\]"  " = 66 'B'"
    gdb_test "p ctable1\[67\]"  " = 67 'C'"
    gdb_test "p ctable1\[68\]"  " = 68 'D'"
    gdb_test "p ctable1\[69\]"  " = 69 'E'"
    gdb_test "p ctable1\[70\]"  " = 70 'F'"
    gdb_test "p ctable1\[71\]"  " = 71 'G'"
    gdb_test "p ctable1\[72\]"  " = 72 'H'"
    gdb_test "p ctable1\[73\]"  " = 73 'I'"
    gdb_test "p ctable1\[74\]"  " = 74 'J'"
    gdb_test "p ctable1\[75\]"  " = 75 'K'"
    gdb_test "p ctable1\[76\]"  " = 76 'L'"
    gdb_test "p ctable1\[77\]"  " = 77 'M'"
    gdb_test "p ctable1\[78\]"  " = 78 'N'"
    gdb_test "p ctable1\[79\]"  " = 79 'O'"
    gdb_test "p ctable1\[80\]"  " = 80 'P'"
    gdb_test "p ctable1\[81\]"  " = 81 'Q'"
    gdb_test "p ctable1\[82\]"  " = 82 'R'"
    gdb_test "p ctable1\[83\]"  " = 83 'S'"
    gdb_test "p ctable1\[84\]"  " = 84 'T'"
    gdb_test "p ctable1\[85\]"  " = 85 'U'"
    gdb_test "p ctable1\[86\]"  " = 86 'V'"
    gdb_test "p ctable1\[87\]"  " = 87 'W'"
    gdb_test "p ctable1\[88\]"  " = 88 'X'"
    gdb_test "p ctable1\[89\]"  " = 89 'Y'"
    gdb_test "p ctable1\[90\]"  " = 90 'Z'"
    gdb_test "p ctable1\[91\]"  " = 91 '\\\['"
    gdb_test "p ctable1\[92\]"  " = 92 '\\\\\\\\'"
    gdb_test "p ctable1\[93\]"  " = 93 '\\\]'"
    gdb_test "p ctable1\[94\]"  " = 94 '\\^'"
    gdb_test "p ctable1\[95\]"  " = 95 '_'"
    gdb_test "p ctable1\[96\]"  " = 96 '`'"
    gdb_test "p ctable1\[97\]"  " = 97 'a'"
    gdb_test "p ctable1\[98\]"  " = 98 'b'"
    gdb_test "p ctable1\[99\]"  " = 99 'c'"
    gdb_test "p ctable1\[100\]" " = 100 'd'"
    gdb_test "p ctable1\[101\]" " = 101 'e'"
    gdb_test "p ctable1\[102\]" " = 102 'f'"
    gdb_test "p ctable1\[103\]" " = 103 'g'"
    gdb_test "p ctable1\[104\]" " = 104 'h'"
    gdb_test "p ctable1\[105\]" " = 105 'i'"
    gdb_test "p ctable1\[106\]" " = 106 'j'"
    gdb_test "p ctable1\[107\]" " = 107 'k'"
    gdb_test "p ctable1\[108\]" " = 108 'l'"
    gdb_test "p ctable1\[109\]" " = 109 'm'"
    gdb_test "p ctable1\[110\]" " = 110 'n'"
    gdb_test "p ctable1\[111\]" " = 111 'o'"
    gdb_test "p ctable1\[112\]" " = 112 'p'"
    gdb_test "p ctable1\[113\]" " = 113 'q'"
    gdb_test "p ctable1\[114\]" " = 114 'r'"
    gdb_test "p ctable1\[115\]" " = 115 's'"
    gdb_test "p ctable1\[116\]" " = 116 't'"
    gdb_test "p ctable1\[117\]" " = 117 'u'"
    gdb_test "p ctable1\[118\]" " = 118 'v'"
    gdb_test "p ctable1\[119\]" " = 119 'w'"
    gdb_test "p ctable1\[120\]" " = 120 'x'"
    gdb_test "p ctable1\[121\]" " = 121 'y'"
    gdb_test "p ctable1\[122\]" " = 122 'z'"
    gdb_test "p ctable1\[123\]" " = 123 '\[{\]+'"
    gdb_test "p ctable1\[124\]" " = 124 '\[|\]+'"
    gdb_test "p ctable1\[125\]" " = 125 '\[}\]+'"
    gdb_test "p ctable1\[126\]" " = 126 '\[~\]'"
    gdb_test "p ctable1\[127\]" " = 127 '\\\\177'"
    gdb_test "p ctable1\[128\]" " = 128 '\\\\200'"
    gdb_test "p ctable1\[129\]" " = 129 '\\\\201'"
    gdb_test "p ctable1\[130\]" " = 130 '\\\\202'"
    gdb_test "p ctable1\[131\]" " = 131 '\\\\203'"
    gdb_test "p ctable1\[132\]" " = 132 '\\\\204'"
    gdb_test "p ctable1\[133\]" " = 133 '\\\\205'"
    gdb_test "p ctable1\[134\]" " = 134 '\\\\206'"
    gdb_test "p ctable1\[135\]" " = 135 '\\\\207'"
    gdb_test "p ctable1\[136\]" " = 136 '\\\\210'"
    gdb_test "p ctable1\[137\]" " = 137 '\\\\211'"
    gdb_test "p ctable1\[138\]" " = 138 '\\\\212'"
    gdb_test "p ctable1\[139\]" " = 139 '\\\\213'"
    gdb_test "p ctable1\[140\]" " = 140 '\\\\214'"
    gdb_test "p ctable1\[141\]" " = 141 '\\\\215'"
    gdb_test "p ctable1\[142\]" " = 142 '\\\\216'"
    gdb_test "p ctable1\[143\]" " = 143 '\\\\217'"
    gdb_test "p ctable1\[144\]" " = 144 '\\\\220'"
    gdb_test "p ctable1\[145\]" " = 145 '\\\\221'"
    gdb_test "p ctable1\[146\]" " = 146 '\\\\222'"
    gdb_test "p ctable1\[147\]" " = 147 '\\\\223'"
    gdb_test "p ctable1\[148\]" " = 148 '\\\\224'"
    gdb_test "p ctable1\[149\]" " = 149 '\\\\225'"
    gdb_test "p ctable1\[150\]" " = 150 '\\\\226'"
    gdb_test "p ctable1\[151\]" " = 151 '\\\\227'"
    gdb_test "p ctable1\[152\]" " = 152 '\\\\230'"
    gdb_test "p ctable1\[153\]" " = 153 '\\\\231'"
    gdb_test "p ctable1\[154\]" " = 154 '\\\\232'"
    gdb_test "p ctable1\[155\]" " = 155 '\\\\233'"
    gdb_test "p ctable1\[156\]" " = 156 '\\\\234'"
    gdb_test "p ctable1\[157\]" " = 157 '\\\\235'"
    gdb_test "p ctable1\[158\]" " = 158 '\\\\236'"
    gdb_test "p ctable1\[159\]" " = 159 '\\\\237'"
    gdb_test "p ctable1\[160\]" " = 160 '\\\\240'"
    gdb_test "p ctable1\[161\]" " = 161 '\\\\241'"
    gdb_test "p ctable1\[162\]" " = 162 '\\\\242'"
    gdb_test "p ctable1\[163\]" " = 163 '\\\\243'"
    gdb_test "p ctable1\[164\]" " = 164 '\\\\244'"
    gdb_test "p ctable1\[165\]" " = 165 '\\\\245'"
    gdb_test "p ctable1\[166\]" " = 166 '\\\\246'"
    gdb_test "p ctable1\[167\]" " = 167 '\\\\247'"
    gdb_test "p ctable1\[168\]" " = 168 '\\\\250'"
    gdb_test "p ctable1\[169\]" " = 169 '\\\\251'"
    gdb_test "p ctable1\[170\]" " = 170 '\\\\252'"
    gdb_test "p ctable1\[171\]" " = 171 '\\\\253'"
    gdb_test "p ctable1\[172\]" " = 172 '\\\\254'"
    gdb_test "p ctable1\[173\]" " = 173 '\\\\255'"
    gdb_test "p ctable1\[174\]" " = 174 '\\\\256'"
    gdb_test "p ctable1\[175\]" " = 175 '\\\\257'"
    gdb_test "p ctable1\[176\]" " = 176 '\\\\260'"
    gdb_test "p ctable1\[177\]" " = 177 '\\\\261'"
    gdb_test "p ctable1\[178\]" " = 178 '\\\\262'"
    gdb_test "p ctable1\[179\]" " = 179 '\\\\263'"
    gdb_test "p ctable1\[180\]" " = 180 '\\\\264'"
    gdb_test "p ctable1\[181\]" " = 181 '\\\\265'"
    gdb_test "p ctable1\[182\]" " = 182 '\\\\266'"
    gdb_test "p ctable1\[183\]" " = 183 '\\\\267'"
    gdb_test "p ctable1\[184\]" " = 184 '\\\\270'"
    gdb_test "p ctable1\[185\]" " = 185 '\\\\271'"
    gdb_test "p ctable1\[186\]" " = 186 '\\\\272'"
    gdb_test "p ctable1\[187\]" " = 187 '\\\\273'"
    gdb_test "p ctable1\[188\]" " = 188 '\\\\274'"
    gdb_test "p ctable1\[189\]" " = 189 '\\\\275'"
    gdb_test "p ctable1\[190\]" " = 190 '\\\\276'"
    gdb_test "p ctable1\[191\]" " = 191 '\\\\277'"
    gdb_test "p ctable1\[192\]" " = 192 '\\\\300'"
    gdb_test "p ctable1\[193\]" " = 193 '\\\\301'"
    gdb_test "p ctable1\[194\]" " = 194 '\\\\302'"
    gdb_test "p ctable1\[195\]" " = 195 '\\\\303'"
    gdb_test "p ctable1\[196\]" " = 196 '\\\\304'"
    gdb_test "p ctable1\[197\]" " = 197 '\\\\305'"
    gdb_test "p ctable1\[198\]" " = 198 '\\\\306'"
    gdb_test "p ctable1\[199\]" " = 199 '\\\\307'"
    gdb_test "p ctable1\[200\]" " = 200 '\\\\310'"
    gdb_test "p ctable1\[201\]" " = 201 '\\\\311'"
    gdb_test "p ctable1\[202\]" " = 202 '\\\\312'"
    gdb_test "p ctable1\[203\]" " = 203 '\\\\313'"
    gdb_test "p ctable1\[204\]" " = 204 '\\\\314'"
    gdb_test "p ctable1\[205\]" " = 205 '\\\\315'"
    gdb_test "p ctable1\[206\]" " = 206 '\\\\316'"
    gdb_test "p ctable1\[207\]" " = 207 '\\\\317'"
    gdb_test "p ctable1\[208\]" " = 208 '\\\\320'"
    gdb_test "p ctable1\[209\]" " = 209 '\\\\321'"
    gdb_test "p ctable1\[210\]" " = 210 '\\\\322'"
    gdb_test "p ctable1\[211\]" " = 211 '\\\\323'"
    gdb_test "p ctable1\[212\]" " = 212 '\\\\324'"
    gdb_test "p ctable1\[213\]" " = 213 '\\\\325'"
    gdb_test "p ctable1\[214\]" " = 214 '\\\\326'"
    gdb_test "p ctable1\[215\]" " = 215 '\\\\327'"
    gdb_test "p ctable1\[216\]" " = 216 '\\\\330'"
    gdb_test "p ctable1\[217\]" " = 217 '\\\\331'"
    gdb_test "p ctable1\[218\]" " = 218 '\\\\332'"
    gdb_test "p ctable1\[219\]" " = 219 '\\\\333'"
    gdb_test "p ctable1\[220\]" " = 220 '\\\\334'"
    gdb_test "p ctable1\[221\]" " = 221 '\\\\335'"
    gdb_test "p ctable1\[222\]" " = 222 '\\\\336'"
    gdb_test "p ctable1\[223\]" " = 223 '\\\\337'"
    gdb_test "p ctable1\[224\]" " = 224 '\\\\340'"
    gdb_test "p ctable1\[225\]" " = 225 '\\\\341'"
    gdb_test "p ctable1\[226\]" " = 226 '\\\\342'"
    gdb_test "p ctable1\[227\]" " = 227 '\\\\343'"
    gdb_test "p ctable1\[228\]" " = 228 '\\\\344'"
    gdb_test "p ctable1\[229\]" " = 229 '\\\\345'"
    gdb_test "p ctable1\[230\]" " = 230 '\\\\346'"
    gdb_test "p ctable1\[231\]" " = 231 '\\\\347'"
    gdb_test "p ctable1\[232\]" " = 232 '\\\\350'"
    gdb_test "p ctable1\[233\]" " = 233 '\\\\351'"
    gdb_test "p ctable1\[234\]" " = 234 '\\\\352'"
    gdb_test "p ctable1\[235\]" " = 235 '\\\\353'"
    gdb_test "p ctable1\[236\]" " = 236 '\\\\354'"
    gdb_test "p ctable1\[237\]" " = 237 '\\\\355'"
    gdb_test "p ctable1\[238\]" " = 238 '\\\\356'"
    gdb_test "p ctable1\[239\]" " = 239 '\\\\357'"
    gdb_test "p ctable1\[240\]" " = 240 '\\\\360'"
    gdb_test "p ctable1\[241\]" " = 241 '\\\\361'"
    gdb_test "p ctable1\[242\]" " = 242 '\\\\362'"
    gdb_test "p ctable1\[243\]" " = 243 '\\\\363'"
    gdb_test "p ctable1\[244\]" " = 244 '\\\\364'"
    gdb_test "p ctable1\[245\]" " = 245 '\\\\365'"
    gdb_test "p ctable1\[246\]" " = 246 '\\\\366'"
    gdb_test "p ctable1\[247\]" " = 247 '\\\\367'"
    gdb_test "p ctable1\[248\]" " = 248 '\\\\370'"
    gdb_test "p ctable1\[249\]" " = 249 '\\\\371'"
    gdb_test "p ctable1\[250\]" " = 250 '\\\\372'"
    gdb_test "p ctable1\[251\]" " = 251 '\\\\373'"
    gdb_test "p ctable1\[252\]" " = 252 '\\\\374'"
    gdb_test "p ctable1\[253\]" " = 253 '\\\\375'"
    gdb_test "p ctable1\[254\]" " = 254 '\\\\376'"
    gdb_test "p ctable1\[255\]" " = 255 '\\\\377'"
}

# Test interaction of the number of print elements to print and the
# repeat count, set to the default of 10.

proc test_print_repeats_10 {} {
    global gdb_prompt decimal

    for { set x 1 } { $x <= 16 } { incr x } {
	gdb_test_no_output "set print elements $x"
	for { set e 1 } { $e <= 16 } {incr e } {
	    set v [expr $e - 1];
	    set command "p &ctable2\[${v}*16\]"
	    if { $x < $e } {
		set aval $x;
	    } else {
		set aval $e;
	    }
	    set xval [expr $x - $e];
	    if { $xval < 0 } {
		set xval 0;
	    }
	    if { $aval > 10 } {
		set a "'a' <repeats $aval times>";
		if { $xval > 0 } {
		    set a "${a}, \\\"";
		}
	    } else {
		set a "\\\"[string range "aaaaaaaaaaaaaaaa" 1 $aval]";
		if { $xval > 10 } {
		    set a "$a\\\", ";
		}
	    }
	    set xstr "";
	    if { $xval > 10 } {
		set xstr "'X' <repeats $xval times>";
	    } else {
		if { $xval > 0 } {
		    set xstr "[string range "XXXXXXXXXXXXXXXX" 1 $xval]\\\"";
		} else {
		    if { $aval <= 10 } {
			set xstr "\\\"";
		    }
		}
	    }
	    if { $aval < 16 } {
		set xstr "${xstr}\[.\]\[.\]\[.\]"
	    }
	    set string " = \[(\]unsigned char \[*\]\[)\] <ctable2(\\+$decimal)?> ${a}${xstr}";
	    gdb_test "$command" "$string" "$command with print elements set to $x";
	}
    }
}

# This tests whether GDB uses the correct element content offsets
# (relative to the complete `some_struct' value) when counting value
# repetitions.

proc test_print_repeats_embedded_array {} {
    global gdb_prompt

    gdb_test_escape_braces "p/x some_struct" \
	"= {a = 0x12345678, b = 0x87654321, array = {0xaa <repeats 20 times>}}" \
	"correct element repeats in array embedded at offset > 0"
}

proc test_print_strings {} {
    global gdb_prompt decimal

    # We accept "(unsigned char *) " before the string.  char vs. unsigned char
    # is already tested elsewhere.

    # Test that setting print elements unlimited doesn't completely suppress
    # printing; this was a bug in older gdb's.
    gdb_test_no_output "set print elements 0"
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 0"
    gdb_test_no_output "set print elements 1"
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"t\"\\.\\.\\." "p teststring with elements set to 1"
    gdb_test_no_output "set print elements 5"
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"tests\"\\.\\.\\." "p teststring with elements set to 5"
    gdb_test_no_output "set print elements 19"
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 19"
    gdb_test_no_output "set print elements 20"
    gdb_test "p teststring" \
	" = (.unsigned char .. )?\"teststring contents\"" "p teststring with elements set to 20"

    gdb_test_no_output "set print elements 8"

    gdb_test "p &ctable1\[0\]" \
	" = \\(unsigned char \\*\\) <ctable1> \"\""
    gdb_test "p &ctable1\[1\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\001\\\\002\\\\003\\\\004\\\\005\\\\006\\\\a\\\\b\"..."
    gdb_test "p &ctable1\[1*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\b\\\\t\\\\n\\\\v\\\\f\\\\r\\\\016\\\\017\"..."
    gdb_test "p &ctable1\[2*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\020\\\\021\\\\022\\\\023\\\\024\\\\025\\\\026\\\\027\"..."
    gdb_test "p &ctable1\[3*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\030\\\\031\\\\032\\\\033\\\\034\\\\035\\\\036\\\\037\"..."
    gdb_test "p &ctable1\[4*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \" !\\\\\"#\\\$%&'\"..."
    gdb_test "p &ctable1\[5*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\(\\)\\*\\+,-./\"..."
    gdb_test "p &ctable1\[6*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"01234567\"..."
    gdb_test "p &ctable1\[7*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"89:;<=>\\?\"..."
    gdb_test "p &ctable1\[8*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"@ABCDEFG\"..."
    gdb_test "p &ctable1\[9*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"HIJKLMNO\"..."
    gdb_test "p &ctable1\[10*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"PQRSTUVW\"..."
    gdb_test "p &ctable1\[11*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"XYZ\\\[\\\\\\\\\\\]\\^_\"..."
    gdb_test "p &ctable1\[12*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"`abcdefg\"..."
    gdb_test "p &ctable1\[13*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"hijklmno\"..."
    gdb_test "p &ctable1\[14*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"pqrstuvw\"..."
    gdb_test "p &ctable1\[15*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"xyz\[{|}\]+\\~\\\\177\"..."
    gdb_test "p &ctable1\[16*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\200\\\\201\\\\202\\\\203\\\\204\\\\205\\\\206\\\\207\"..."
    gdb_test "p &ctable1\[17*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\210\\\\211\\\\212\\\\213\\\\214\\\\215\\\\216\\\\217\"..."
    gdb_test "p &ctable1\[18*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\220\\\\221\\\\222\\\\223\\\\224\\\\225\\\\226\\\\227\"..."
    gdb_test "p &ctable1\[19*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\230\\\\231\\\\232\\\\233\\\\234\\\\235\\\\236\\\\237\"..."
    gdb_test "p &ctable1\[20*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\240\\\\241\\\\242\\\\243\\\\244\\\\245\\\\246\\\\247\"..."
    gdb_test "p &ctable1\[21*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\250\\\\251\\\\252\\\\253\\\\254\\\\255\\\\256\\\\257\"..."
    gdb_test "p &ctable1\[22*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\260\\\\261\\\\262\\\\263\\\\264\\\\265\\\\266\\\\267\"..."
    gdb_test "p &ctable1\[23*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\270\\\\271\\\\272\\\\273\\\\274\\\\275\\\\276\\\\277\"..."
    gdb_test "p &ctable1\[24*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\300\\\\301\\\\302\\\\303\\\\304\\\\305\\\\306\\\\307\"..."
    gdb_test "p &ctable1\[25*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\310\\\\311\\\\312\\\\313\\\\314\\\\315\\\\316\\\\317\"..."
    gdb_test "p &ctable1\[26*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\320\\\\321\\\\322\\\\323\\\\324\\\\325\\\\326\\\\327\"..."
    gdb_test "p &ctable1\[27*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\330\\\\331\\\\332\\\\333\\\\334\\\\335\\\\336\\\\337\"..."
    gdb_test "p &ctable1\[28*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\340\\\\341\\\\342\\\\343\\\\344\\\\345\\\\346\\\\347\"..."
    gdb_test "p &ctable1\[29*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\350\\\\351\\\\352\\\\353\\\\354\\\\355\\\\356\\\\357\"..."
    gdb_test "p &ctable1\[30*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\360\\\\361\\\\362\\\\363\\\\364\\\\365\\\\366\\\\367\"..."
    gdb_test "p &ctable1\[31*8\]" \
	" = \\(unsigned char \\*\\) <ctable1\\+$decimal> \"\\\\370\\\\371\\\\372\\\\373\\\\374\\\\375\\\\376\\\\377\"..."
}

proc test_print_int_arrays {} {
    global gdb_prompt

    gdb_test_no_output "set print elements 24"

    gdb_test_escape_braces "p int1dim" \
	" = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}"
    gdb_test_escape_braces "p int2dim" \
	" = {{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}}"
    gdb_test_escape_braces "p int3dim" \
	" = {{{0, 1}, {2, 3}, {4, 5}}, {{6, 7}, {8, 9}, {10, 11}}}"
    gdb_test_escape_braces "p int4dim" \
	" = {{{{0, 1}, {2, 3}, {4, 5}}, {{6, 7}, {8, 9}, {10, 11}}}}"
}

proc test_print_typedef_arrays {} {
    global gdb_prompt

    gdb_test_no_output "set print elements 24"

    gdb_test_escape_braces "p a1" \
	" = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}"
    gdb_test "p a1\[0\]" " = 2"
    gdb_test "p a1\[9\]" " = 20"

    gdb_test "p a2" \
	" = \"abcd\""
    gdb_test "p a2\[0\]" " = 97 'a'"
    gdb_test "p a2\[3\]" " = 100 'd'"

    # Regression test of null-stop; PR 11049.
    gdb_test_no_output "set print null-stop on"
    gdb_test "p a2" " = \"abcd\"" "print a2 with null-stop on"
    gdb_test_no_output "set print null-stop off"
}

proc test_artificial_arrays {} {
    # Send \026@ instead of just @ in case the kill character is @.
    gdb_test_escape_braces "p int1dim\[0\]\026@2" " = {0, 1}" {p int1dim[0]@2}
    gdb_test_escape_braces "p int1dim\[0\]\026@2\026@3" \
	"({{0, 1}, {2, 3}, {4, 5}}|\[Cc\]annot.*)" \
	{p int1dim[0]@2@3}
    gdb_test_escape_braces {p/x (short [])0x12345678} \
	" = ({0x1234, 0x5678}|{0x5678, 0x1234})"
}

proc test_print_char_arrays {} {
    global gdb_prompt
    global hex decimal

    gdb_test_no_output "set print elements 24"
    gdb_test_no_output "set print address on"

    gdb_test "p arrays" \
	" = {array1 = \"abc\", array2 = \"d\", array3 = \"e\", array4 = \"fg\", array5 = \"hij\"}"

    gdb_test "p parrays"		" = \\(struct some_arrays \\*\\) $hex <arrays>"
    gdb_test "p parrays->array1"	" = \"abc\""
    gdb_test "p &parrays->array1"	" = \\(unsigned char \\(\\*\\)\\\[4\\\]\\) $hex <arrays>"
    gdb_test "p parrays->array2"	" = \"d\""
    gdb_test "p &parrays->array2"	" = \\(unsigned char \\(\\*\\)\\\[1\\\]\\) $hex <arrays\\+$decimal>"
    gdb_test "p parrays->array3"	" = \"e\""
    gdb_test "p &parrays->array3"	" = \\(unsigned char \\(\\*\\)\\\[1\\\]\\) $hex <arrays\\+$decimal>"
    gdb_test "p parrays->array4"	" = \"fg\""
    gdb_test "p &parrays->array4"	" = \\(unsigned char \\(\\*\\)\\\[2\\\]\\) $hex <arrays\\+$decimal>"
    gdb_test "p parrays->array5"	" = \"hij\""
    gdb_test "p &parrays->array5"	" = \\(unsigned char \\(\\*\\)\\\[4\\\]\\) $hex <arrays\\+$decimal>"

    gdb_test_no_output "set print address off"
}

proc test_print_string_constants {} {
    global gdb_prompt

    gdb_test_no_output "set print elements 50"

    if [target_info exists gdb,cannot_call_functions] {
	setup_xfail "*-*-*" 2416
	fail "This target can not call functions"
	return
    }

    # We need to up this because this can be really slow on some boards.
    # (Test may involve inferior malloc() calls).
    set timeout 60;

    gdb_test "p \"a string\""		" = \"a string\""
    gdb_test "p \"embedded \\000 null\"" " = \"embedded \\\\000 null\""
    gdb_test "p \"abcd\"\[2\]"	" = 99 'c'"
    gdb_test "p sizeof (\"abcdef\")"	" = 7"
    gdb_test "ptype \"foo\""		" = char \\\[4\\\]"
    gdb_test "p *\"foo\""		" = 102 'f'"
    gdb_test "ptype *\"foo\""		" = char"
    gdb_test "p &*\"foo\""		" = \"foo\""
    gdb_test "ptype &*\"foo\""	"type = char \\*"
    gdb_test "p (char *)\"foo\""	" = \"foo\""
}

proc test_print_array_constants {} {

    if [target_info exists gdb,cannot_call_functions] {
	setup_xfail "*-*-*" 2416
	fail "This target can not call functions"
	return
    }

    # We need to up this because this can be really slow on some boards.
    # (Test may involve inferior malloc() calls).
    set timeout 60;

    gdb_test "print {'a','b','c'}"	" = \"abc\""
    gdb_test_escape_braces "print {0,1,2}"    " = {0, 1, 2}"
    gdb_test_escape_braces "print {(long)0,(long)1,(long)2}"  " = {0, 1, 2}"
    gdb_test_escape_braces "print {{0,1,2},{3,4,5}}"  " = {{0, 1, 2}, {3, 4, 5}}"
    gdb_test "print {4,5,6}\[2\]"	" = 6"
    gdb_test "print *&{4,5,6}\[1\]"	"Attempt to take address of value not located in memory."
}

proc test_print_enums {} {
    # Regression test for PR11827.
    gdb_test "print some_volatile_enum" "enumvolval1"

    gdb_test "print three" " = \\\(ONE \\| TWO\\\)"
}

proc test_printf {} {
    gdb_test "printf \"x=%d,y=%d,z=%d\\n\", 5, 6, 7" "x=5,y=6,z=7"
    gdb_test "printf \"string=%.4sxx\\n\", teststring" "string=testxx"
    gdb_test "printf \"string=%sxx\\n\", teststring" \
	"string=teststring contentsxx"

    gdb_test "printf \"%f is fun\\n\", 1.0" "1\.0+ is fun"

    # Test mixing args of different sizes.
    gdb_test "printf \"x=%d,y=%f,z=%d\\n\", 5, 6.0, 7" "x=5,y=6\.0+,z=7"
    gdb_test "printf \"%x %f, %c %x, %x, %f\\n\", 0xbad, -99.541, 'z',\
0xfeedface, 0xdeadbeef, 5.0" "bad -99.54\[0-9\]+, z feedface, deadbeef, 5.0+"

    # Regression test for C lexer bug.
    gdb_test "printf \"%c\\n\", \"x\"\[1,0\]" "x"

    # Regression test for "%% at end of format string.
    # See http://sourceware.org/bugzilla/show_bug.cgi?id=11345
    gdb_test "printf \"%%%d%%\\n\", 5" "%5%"
}

#Test printing DFP values with printf
proc test_printf_with_dfp {} {

    # Test various dfp values, covering 32-bit, 64-bit and 128-bit ones

    # _Decimal32 constants, which can support up to 7 digits
    gdb_test "printf \"%Hf\\n\",1.2df" "1.2"
    gdb_test "printf \"%Hf\\n\",-1.2df" "-1.2"
    gdb_test "printf \"%Hf\\n\",1.234567df" "1.234567"
    gdb_test "printf \"%Hf\\n\",-1.234567df" "-1.234567"
    gdb_test "printf \"%Hf\\n\",1234567.df" "1234567"
    gdb_test "printf \"%Hf\\n\",-1234567.df" "-1234567"

    gdb_test "printf \"%Hf\\n\",1.2E1df" "12"
    gdb_test "printf \"%Hf\\n\",1.2E10df" "1.2E\\+10"
    gdb_test "printf \"%Hf\\n\",1.2E-10df" "1.2E-10"

    # The largest exponent for 32-bit dfp value is 96.
    gdb_test "printf \"%Hf\\n\",1.2E96df" "1.200000E\\+96"

    # _Decimal64 constants, which can support up to 16 digits
    gdb_test "printf \"%Df\\n\",1.2dd" "1.2"
    gdb_test "printf \"%Df\\n\",-1.2dd" "-1.2"
    gdb_test "printf \"%Df\\n\",1.234567890123456dd" "1.234567890123456"
    gdb_test "printf \"%Df\\n\",-1.234567890123456dd" "-1.234567890123456"
    gdb_test "printf \"%Df\\n\",1234567890123456.dd" "1234567890123456"
    gdb_test "printf \"%Df\\n\",-1234567890123456.dd" "-1234567890123456"

    gdb_test "printf \"%Df\\n\",1.2E1dd" "12"
    gdb_test "printf \"%Df\\n\",1.2E10dd" "1.2E\\+10"
    gdb_test "printf \"%Df\\n\",1.2E-10dd" "1.2E-10"

    # The largest exponent for 64-bit dfp value is 384.
    gdb_test "printf \"%Df\\n\",1.2E384dd" "1.200000000000000E\\+384"

    # _Decimal128 constants, which can support up to 34 digits
    gdb_test "printf \"%DDf\\n\",1.2dl" "1.2"
    gdb_test "printf \"%DDf\\n\",-1.2dl" "-1.2"
    gdb_test "printf \"%DDf\\n\",1.234567890123456789012345678901234dl" "1.234567890123456789012345678901234"
    gdb_test "printf \"%DDf\\n\",-1.234567890123456789012345678901234dl" "-1.234567890123456789012345678901234"
    gdb_test "printf \"%DDf\\n\",1234567890123456789012345678901234.dl" "1234567890123456789012345678901234"
    gdb_test "printf \"%DDf\\n\",-1234567890123456789012345678901234.dl" "-1234567890123456789012345678901234"

    gdb_test "printf \"%DDf\\n\",1.2E1dl" "12"
    gdb_test "printf \"%DDf\\n\",1.2E10dl" "1.2E\\+10"
    gdb_test "printf \"%DDf\\n\",1.2E-10dl" "1.2E-10"

    # The largest exponent for 128-bit dfp value is 6144.
    gdb_test "printf \"%DDf\\n\",1.2E6144dl" "1.200000000000000000000000000000000E\\+6144"
}

proc test_print_symbol {} {
    gdb_test_no_output "set print symbol on"

    gdb_test "print &three" " = .* <three>"
    gdb_test "print parrays" " = .* <arrays>"

    # In case somebody adds tests after this.
    gdb_test_no_output "set print symbol off"
}

# Escape a left curly brace to prevent it from being interpreted as 
# the beginning of a bound
proc gdb_test_escape_braces { args } {

    set pattern [lindex $args 1]
    regsub -all {\{[0-9]} $pattern {\\&} esc_pattern
    gdb_test [lindex $args 0] $esc_pattern [lindex $args 2]
}

# Start with a fresh gdb.

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir

gdb_test "print \$pc" "No registers\\."

# Some simple operations on strings should work even without a target
# (and therefore without calling malloc).
gdb_test "print \"abc\"" " = \"abc\""
gdb_test "print sizeof (\"abc\")" " = 4"
gdb_test "ptype \"abc\"" " = char \\\[4\\\]"
gdb_test "print \$cvar = \"abc\"" " = \"abc\""
gdb_test "print sizeof (\$cvar)" " = 4"

gdb_file_cmd ${binfile}

gdb_test "print \$pc" "No registers\\." "print \$pc (with file)"

gdb_test_no_output "set print sevenbit-strings"
gdb_test_no_output "set print address off"
gdb_test_no_output "set width 0"

if { [test_compiler_info "armcc-*"] } {
    # ARM RealView compresses large arrays in the data segment.
    # Before the program starts, we can not read them.  There is
    # nothing in the file to indicate that data is compressed.
    setup_xfail "arm*-*-eabi"
}
gdb_test "p ctable1\[120\]" "120 'x'" "p ctable1\[120\] #1"

gdb_load ${binfile}

if ![runto_main] then {
    fail "Can't run to main"
    return 0
}

test_integer_literals_accepted
test_integer_literals_rejected
test_float_accepted
test_float_rejected
test_character_literals_accepted
test_print_all_chars
test_print_repeats_10
test_print_repeats_embedded_array
test_print_strings
test_print_int_arrays
test_print_typedef_arrays
test_artificial_arrays
test_print_char_arrays
# We used to do the runto main here.
test_print_string_constants
test_print_array_constants
test_print_enums
test_printf
test_printf_with_dfp
test_print_symbol
