From: Daniel Jacobowitz Date: Sun, 31 Jul 2005 21:24:25 +0000 (+0000) Subject: * gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8be260b6f95c37c4633663a01eb02ffc0dcd184f;p=binutils-gdb.git * gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change. * gdb.mi/mi-stack.c: New file, based on gdb.mi/basics.c. * gdb.mi/mi-var-child.c: New file, based on gdb.mi/var-cmd.c. * gdb.mi/mi-stack.exp: Update to use mi-stack.c as a source file. * gdb.mi/mi-var-child.exp: Update to use mi-var-child.c as a source file. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a6b0211b0e0..6ca381b5cb8 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2005-07-31 Daniel Jacobowitz + + * gdb.mi/basics.c, gdb.mi/var-cmd.c: Revert last change. + * gdb.mi/mi-stack.c: New file, based on gdb.mi/basics.c. + * gdb.mi/mi-var-child.c: New file, based on gdb.mi/var-cmd.c. + * gdb.mi/mi-stack.exp: Update to use mi-stack.c as a source file. + * gdb.mi/mi-var-child.exp: Update to use mi-var-child.c as a source + file. + 2005-07-27 Nick Roberts * gdb.mi/var-cmd.c: Give long_array in _struct_decl 12 elements. diff --git a/gdb/testsuite/gdb.mi/basics.c b/gdb/testsuite/gdb.mi/basics.c index eab044b323b..0e3c1d8abfc 100644 --- a/gdb/testsuite/gdb.mi/basics.c +++ b/gdb/testsuite/gdb.mi/basics.c @@ -1,4 +1,4 @@ -/* Copyright 1999, 2000, 2004, 2005 +/* Copyright 1999, 2000, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -30,7 +30,6 @@ int callee4 (void) int A=1; int B=2; int C; - int D[3] = {0, 1 ,2}; C = A + B; return 0; diff --git a/gdb/testsuite/gdb.mi/mi-stack.c b/gdb/testsuite/gdb.mi/mi-stack.c new file mode 100644 index 00000000000..d7d1d5f3689 --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-stack.c @@ -0,0 +1,68 @@ +/* Copyright 1999, 2000, 2004, 2005 + Free Software Foundation, Inc. + + This file is part of GDB. + + 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 2 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, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* + * This simple program that passes different types of arguments + * on function calls. Useful to test printing frames, stepping, etc. + */ + +#include + +int callee4 (void) +{ + int A=1; + int B=2; + int C; + int D[3] = {0, 1, 2}; + + C = A + B; + return 0; +} +callee3 (char *strarg) +{ + callee4 (); +} + +callee2 (int intarg, char *strarg) +{ + callee3 (strarg); +} + +callee1 (int intarg, char *strarg, double fltarg) +{ + callee2 (intarg, strarg); +} + +main () +{ + callee1 (2, "A string argument.", 3.5); + callee1 (2, "A string argument.", 3.5); + + printf ("Hello, World!"); + + return 0; +} + +/* +Local variables: +change-log-default-name: "ChangeLog-mi" +End: +*/ + diff --git a/gdb/testsuite/gdb.mi/mi-stack.exp b/gdb/testsuite/gdb.mi/mi-stack.exp index 0fe203f8c30..05ec32db3d0 100644 --- a/gdb/testsuite/gdb.mi/mi-stack.exp +++ b/gdb/testsuite/gdb.mi/mi-stack.exp @@ -31,7 +31,7 @@ if [mi_gdb_start] { continue } -set testfile "basics" +set testfile "mi-stack" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } { @@ -58,7 +58,7 @@ proc test_stack_frame_listing {} { # -stack-info-frame mi_gdb_test "231-stack-list-frames" \ - "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \ + "231\\^done,stack=\\\[frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\},frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\},frame=\{level=\"2\",addr=\"$hex\",func=\"callee2\",.*\},frame=\{level=\"3\",addr=\"$hex\",func=\"callee1\",.*\},frame=\{level=\"4\",addr=\"$hex\",func=\"main\",.*\}\\\]" \ "stack frame listing" mi_gdb_test "232-stack-list-frames 1 1" \ "232\\^done,stack=\\\[frame=\{level=\"1\",addr=\"$hex\",func=\"callee3\",.*\}\\\]" \ @@ -72,7 +72,7 @@ proc test_stack_frame_listing {} { "stack frame listing wrong" mi_gdb_test "235-stack-info-frame" \ - "235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\}" \ + "235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"callee4\",file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_body\"\}" \ "selected frame listing" } @@ -166,7 +166,7 @@ set line_callee4_return_0 [gdb_get_line_number "return 0;"] # step until A, B, C, D have some reasonable values. send_gdb "-exec-next 4\n" gdb_expect { - -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_return_0\"\}\r\n$mi_gdb_prompt$" { + -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*${srcfile}\",fullname=\"${fullname_syntax}${srcfile}\",line=\"$line_callee4_return_0\"\}\r\n$mi_gdb_prompt$" { pass "next's in callee4" } timeout { fail "next in callee4 (timeout)" } diff --git a/gdb/testsuite/gdb.mi/mi-var-child.c b/gdb/testsuite/gdb.mi/mi-var-child.c new file mode 100644 index 00000000000..06b3e357ff6 --- /dev/null +++ b/gdb/testsuite/gdb.mi/mi-var-child.c @@ -0,0 +1,319 @@ +/* Copyright 1999, 2004, 2005 Free Software Foundation, Inc. + + This file is part of GDB. + + 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 2 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, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include + +struct _simple_struct { + int integer; + unsigned int unsigned_integer; + char character; + signed char signed_character; + char *char_ptr; + int array_of_10[10]; +}; + +typedef struct _simple_struct simpleton; + +simpleton global_simple; + +enum foo { + bar = 1, + baz +}; + +typedef enum foo efoo; + +union named_union +{ + int integer; + char *char_ptr; +}; + +typedef struct _struct_decl { + int integer; + char character; + char *char_ptr; + long long_int; + int **int_ptr_ptr; + long long_array[12]; + + void (*func_ptr) (void); + struct _struct_decl (*func_ptr_struct) (int, char *, long); + struct _struct_decl *(*func_ptr_ptr) (int, char *, long); + union { + int a; + char *b; + long c; + enum foo d; + } u1; + + struct { + union { + struct { + int d; + char e[10]; + int *(*func) (void); + efoo foo; + } u1s1; + + long f; + struct { + char array_ptr[2]; + int (*func) (int, char *); + } u1s2; + } u2; + + int g; + char h; + long i[10]; + } s2; +} weird_struct; + +struct _struct_n_pointer { + char ****char_ptr; + long ****long_ptr; + struct _struct_n_pointer *ptrs[3]; + struct _struct_n_pointer *next; +}; + +void do_locals_tests (void); +void do_block_tests (void); +void subroutine1 (int, long *); +void nothing (void); +void do_children_tests (void); +void do_special_tests (void); +void incr_a (char); + +void incr_a (char a) +{ + int b; + b = a; +} + +void +do_locals_tests () +{ + int linteger; + int *lpinteger; + char lcharacter; + char *lpcharacter; + long llong; + long *lplong; + float lfloat; + float *lpfloat; + double ldouble; + double *lpdouble; + struct _simple_struct lsimple; + struct _simple_struct *lpsimple; + void (*func) (void); + + /* Simple assignments */ + linteger = 1234; + lpinteger = &linteger; + lcharacter = 'a'; + lpcharacter = &lcharacter; + llong = 2121L; + lplong = &llong; + lfloat = 2.1; + lpfloat = &lfloat; + ldouble = 2.718281828459045; + lpdouble = &ldouble; + lsimple.integer = 1234; + lsimple.unsigned_integer = 255; + lsimple.character = 'a'; + lsimple.signed_character = 21; + lsimple.char_ptr = &lcharacter; + lpsimple = &lsimple; + func = nothing; + + /* Check pointers */ + linteger = 4321; + lcharacter = 'b'; + llong = 1212L; + lfloat = 1.2; + ldouble = 5.498548281828172; + lsimple.integer = 255; + lsimple.unsigned_integer = 4321; + lsimple.character = 'b'; + lsimple.signed_character = 0; + + subroutine1 (linteger, &llong); +} + +void +nothing () +{ +} + +void +subroutine1 (int i, long *l) +{ + global_simple.integer = i + 3; + i = 212; + *l = 12; +} + +void +do_block_tests () +{ + int cb = 12; + + { + int foo; + foo = 123; + { + int foo2; + foo2 = 123; + { + int foo; + foo = 321; + } + foo2 = 0; + } + foo = 0; + } + + cb = 21; +} + +void +do_children_tests (void) +{ + weird_struct *weird; + struct _struct_n_pointer *psnp; + struct _struct_n_pointer snp0, snp1, snp2; + char a0, *a1, **a2, ***a3; + char b0, *b1, **b2, ***b3; + char c0, *c1, **c2, ***c3; + long z0, *z1, **z2, ***z3; + long y0, *y1, **y2, ***y3; + long x0, *x1, **x2, ***x3; + int *foo; + int bar; + + struct _struct_decl struct_declarations; + weird = &struct_declarations; + + struct_declarations.integer = 123; + weird->char_ptr = "hello"; + bar = 2121; + foo = &bar; + struct_declarations.int_ptr_ptr = &foo; + weird->long_array[0] = 1234; + struct_declarations.long_array[1] = 2345; + weird->long_array[2] = 3456; + struct_declarations.long_array[3] = 4567; + weird->long_array[4] = 5678; + struct_declarations.long_array[5] = 6789; + weird->long_array[6] = 7890; + struct_declarations.long_array[7] = 8901; + weird->long_array[8] = 9012; + struct_declarations.long_array[9] = 1234; + + weird->func_ptr = nothing; + struct_declarations.long_array[10] = 3456; + struct_declarations.long_array[11] = 5678; + + /* Struct/pointer/array tests */ + a0 = '0'; + a1 = &a0; + a2 = &a1; + a3 = &a2; + b0 = '1'; + b1 = &b0; + b2 = &b1; + b3 = &b2; + c0 = '2'; + c1 = &c0; + c2 = &c1; + c3 = &c2; + z0 = 0xdead + 0; + z1 = &z0; + z2 = &z1; + z3 = &z2; + y0 = 0xdead + 1; + y1 = &y0; + y2 = &y1; + y3 = &y2; + x0 = 0xdead + 2; + x1 = &x0; + x2 = &x1; + x3 = &x2; + snp0.char_ptr = &a3; + snp0.long_ptr = &z3; + snp0.ptrs[0] = &snp0; + snp0.ptrs[1] = &snp1; + snp0.ptrs[2] = &snp2; + snp0.next = &snp1; + snp1.char_ptr = &b3; + snp1.long_ptr = &y3; + snp1.ptrs[0] = &snp0; + snp1.ptrs[1] = &snp1; + snp1.ptrs[2] = &snp2; + snp1.next = &snp2; + snp2.char_ptr = &c3; + snp2.long_ptr = &x3; + snp2.ptrs[0] = &snp0; + snp2.ptrs[1] = &snp1; + snp2.ptrs[2] = &snp2; + snp2.next = 0x0; + psnp = &snp0; + snp0.char_ptr = &b3; + snp1.char_ptr = &c3; + snp2.char_ptr = &a3; + snp0.long_ptr = &y3; + snp1.long_ptr = &x3; + snp2.long_ptr = &z3; +} + +void +do_special_tests (void) +{ + union named_union u; + union { + int a; + char b; + long c; + } anonu; + struct _simple_struct s; + struct { + int a; + char b; + long c; + } anons; + enum foo e; + enum { A, B, C } anone; + int array[21]; + int a; + + a = 1; + incr_a(2); +} + +int +main (int argc, char *argv []) +{ + do_locals_tests (); + do_block_tests (); + do_children_tests (); + do_special_tests (); + exit (0); +} + + diff --git a/gdb/testsuite/gdb.mi/mi-var-child.exp b/gdb/testsuite/gdb.mi/mi-var-child.exp index 834dd886f12..63f49eddd87 100644 --- a/gdb/testsuite/gdb.mi/mi-var-child.exp +++ b/gdb/testsuite/gdb.mi/mi-var-child.exp @@ -28,7 +28,7 @@ if [mi_gdb_start] { continue } -set testfile "var-cmd" +set testfile "mi-var-child" set srcfile ${testfile}.c set binfile ${objdir}/${subdir}/${testfile} if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } { @@ -553,7 +553,7 @@ mi_gdb_test "-var-info-num-children struct_declarations.int_ptr_ptr.*int_ptr_ptr # Step to "struct_declarations.integer = 123;" set line_dct_123 [gdb_get_line_number "struct_declarations.integer = 123;"] -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ $line_dct_123 "step to line \$line_dct_123" # Test: c_variable-4.81 @@ -752,7 +752,7 @@ mi_gdb_test "-var-update *" \ "update all vars. None changed" # Step over "struct_declarations.integer = 123;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_123 + 1] "step \$line_dct_123 + 1" # Test: c_variable-5.2 @@ -765,7 +765,7 @@ mi_gdb_test "-var-update *" \ # weird->char_ptr = "hello"; # bar = 2121; # foo = &bar; -mi_execute_to "exec-step 3" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \ +mi_execute_to "exec-step 3" "end-stepping-range" do_children_tests {} ".*${srcfile}" \ [expr $line_dct_123 + 4] {} "step \$line_dct_123 + 4" # Test: c_variable-5.3 @@ -775,7 +775,7 @@ mi_gdb_test "-var-update *" \ "update all vars struct_declarations.char_ptr" # Step over "struct_declarations.int_ptr_ptr = &foo;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_123 + 5] "step \$line_dct_123 + 5" # Test: c_variable-5.4 @@ -785,7 +785,7 @@ mi_gdb_test "-var-update *" \ "update all vars int_ptr_ptr and children changed" # Step over "weird->long_array[0] = 1234;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_123 + 6] "step \$line_dct_123 + 6" # Test: c_variable-5.5 @@ -795,7 +795,7 @@ mi_gdb_test "-var-update *" \ "update all vars struct_declarations.long_array.0 changed" # Step over "struct_declarations.long_array[1] = 2345;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_123 + 7] "step \$line_dct_123 + 7" # Test: c_variable-5.6 @@ -805,7 +805,7 @@ mi_gdb_test "-var-update *" \ "update all vars struct_declarations.long_array.1 changed" # Step over "weird->long_array[2] = 3456;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_123 + 8] "step \$line_dct_123 + 8" # Test: c_variable-5.7 @@ -824,7 +824,7 @@ mi_gdb_test "-var-update *" \ # struct_declarations.long_array[9] = 1234; set line_dct_nothing [gdb_get_line_number "weird->func_ptr = nothing;"] -mi_execute_to "exec-step 7" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \ +mi_execute_to "exec-step 7" "end-stepping-range" do_children_tests {} ".*${srcfile}" \ $line_dct_nothing {} "step \$line_dct_nothing" # Test: c_variable-5.8 @@ -835,7 +835,7 @@ mi_gdb_test "-var-update *" \ # Step over "weird->func_ptr = nothing"; -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_nothing + 1] "step \$line_dct_nothing + 1" # Test: c_variable-5.9 @@ -845,7 +845,7 @@ mi_gdb_test "-var-update *" \ "update all vars struct_declarations.func_ptr changed" # Step over "struct_declarations.long_array[10] = 3456"; -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_nothing + 2] "step \$line_dct_nothing + 2" mi_gdb_test "-var-update --no-values *" \ @@ -854,7 +854,7 @@ mi_gdb_test "-var-update --no-values *" \ # Step over "struct_declarations.long_array[11] = 5678"; set line_dct_a0_0 [gdb_get_line_number "a0 = '0';"] -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ $line_dct_a0_0 "step \$line_dct_a0_0" mi_gdb_test "-var-update --all-values *" \ @@ -883,7 +883,7 @@ mi_gdb_test "-var-delete weird->int_ptr_ptr" \ # psnp = &snp0; set line_dct_snp0 [gdb_get_line_number "psnp = &snp0;"] -mi_execute_to "exec-step 43" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \ +mi_execute_to "exec-step 43" "end-stepping-range" do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 1] {} "step \$line_dct_snp0 + 1" # Test: c_variable-5.10 @@ -1154,7 +1154,7 @@ mi_gdb_test "-var-list-children psnp->ptrs.0.next.next.ptrs" \ "get children of psnp->ptrs.0.next.next.ptrs" # Step over "snp0.char_ptr = &b3;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 2] "step \$line_dct_snp0 + 2" # Test: c_variable-5.47 @@ -1164,7 +1164,7 @@ mi_gdb_test "-var-update *" \ "update all vars psnp->char_ptr (and 0.char_ptr) changed" # Step over "snp1.char_ptr = &c3;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 3] "step \$line_dct_snp0 + 3" # Test: c_variable-5.48 @@ -1175,7 +1175,7 @@ mi_gdb_test "-var-update *" \ # Step over "snp2.char_ptr = &a3;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 4] "step \$line_dct_snp0 + 4" # Test: c_variable-5.49 @@ -1186,7 +1186,7 @@ mi_gdb_test "-var-update *" \ # Step over "snp0.long_ptr = &y3;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 5] "step \$line_dct_snp0 + 5" # Test: c_variable-5.50 @@ -1197,7 +1197,7 @@ mi_gdb_test "-var-update *" \ # Step over "snp1.long_ptr = &x3;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 6] "step \$line_dct_snp0 + 6" # Test: c_variable-5.51 @@ -1214,7 +1214,7 @@ clear_xfail *-*-* # # Step over "snp2.long_ptr = &z3;" -mi_step_to do_children_tests {} {.*var-cmd.c} \ +mi_step_to do_children_tests {} ".*${srcfile}" \ [expr $line_dct_snp0 + 7] "step \$line_dct_snp0 + 7" # Test: c_variable-5.52 diff --git a/gdb/testsuite/gdb.mi/var-cmd.c b/gdb/testsuite/gdb.mi/var-cmd.c index 06b3e357ff6..2a297d2c02d 100644 --- a/gdb/testsuite/gdb.mi/var-cmd.c +++ b/gdb/testsuite/gdb.mi/var-cmd.c @@ -1,4 +1,4 @@ -/* Copyright 1999, 2004, 2005 Free Software Foundation, Inc. +/* Copyright 1999, 2004 Free Software Foundation, Inc. This file is part of GDB. @@ -51,7 +51,7 @@ typedef struct _struct_decl { char *char_ptr; long long_int; int **int_ptr_ptr; - long long_array[12]; + long long_array[10]; void (*func_ptr) (void); struct _struct_decl (*func_ptr_struct) (int, char *, long); @@ -227,8 +227,6 @@ do_children_tests (void) struct_declarations.long_array[9] = 1234; weird->func_ptr = nothing; - struct_declarations.long_array[10] = 3456; - struct_declarations.long_array[11] = 5678; /* Struct/pointer/array tests */ a0 = '0';