Clarify "list" output when specified lines are ambiguous
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / call-rt-st.c
index 712f70ecbb5ad0950fd31cf0728d3fd0f76fe36f..072ea8601927f29975ec953478e5cdfe214eda45 100644 (file)
@@ -2,6 +2,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "../lib/unbuffer_output.c"
+
 /**************************************************************************
  * TESTS :
  * function returning large structures, which go on the stack
@@ -31,6 +33,28 @@ struct small_rep_info_t {
    int   head;
 };
 
+/* 6 bits : really fits in 8 bits and is promoted to 8 bits
+ */
+struct bit_flags_char_t {
+       unsigned char alpha   :1;
+       unsigned char beta    :1;
+       unsigned char gamma   :1;
+       unsigned char delta   :1;
+       unsigned char epsilon :1;
+       unsigned char omega   :1;
+};
+
+/* 6 bits : really fits in 8 bits and is promoted to 16 bits
+ */
+struct bit_flags_short_t {
+       unsigned short alpha   :1;
+       unsigned short beta    :1;
+       unsigned short gamma   :1;
+       unsigned short delta   :1;
+       unsigned short epsilon :1;
+       unsigned short omega   :1;
+};
+
 /* 6 bits : really fits in 8 bits and is promoted to 32 bits
  */
 struct bit_flags_t {
@@ -103,7 +127,69 @@ void loop_count () {
 
      int index;
 
-     for (index=0; index<4; index++);
+     for (index=0; index<4; index++); /* -break1- */
+}
+
+/*****************************************************************
+ * INIT_BIT_FLAGS_CHAR :
+ * Initializes a bit_flags_char_t structure. Can call this function see
+ * the call command behavior when integer arguments do not fit into
+ * registers and must be placed on the stack.
+ * OUT struct bit_flags_char_t *bit_flags -- structure to be filled
+ * IN  unsigned a  -- 0 or 1 
+ * IN  unsigned b  -- 0 or 1 
+ * IN  unsigned g  -- 0 or 1 
+ * IN  unsigned d  -- 0 or 1 
+ * IN  unsigned e  -- 0 or 1 
+ * IN  unsigned o  -- 0 or 1 
+ *****************************************************************/
+void init_bit_flags_char (
+struct bit_flags_char_t *bit_flags,
+unsigned a,
+unsigned b,
+unsigned g,
+unsigned d,
+unsigned e,
+unsigned o)
+{
+
+   bit_flags->alpha = a;
+   bit_flags->beta = b;
+   bit_flags->gamma = g;
+   bit_flags->delta = d;
+   bit_flags->epsilon = e;
+   bit_flags->omega = o;
+}
+
+/*****************************************************************
+ * INIT_BIT_FLAGS_SHORT :
+ * Initializes a bit_flags_short_t structure. Can call this function see
+ * the call command behavior when integer arguments do not fit into
+ * registers and must be placed on the stack.
+ * OUT struct bit_flags_short_t *bit_flags -- structure to be filled
+ * IN  unsigned a  -- 0 or 1 
+ * IN  unsigned b  -- 0 or 1 
+ * IN  unsigned g  -- 0 or 1 
+ * IN  unsigned d  -- 0 or 1 
+ * IN  unsigned e  -- 0 or 1 
+ * IN  unsigned o  -- 0 or 1 
+ *****************************************************************/
+void init_bit_flags_short (
+struct bit_flags_short_t *bit_flags,
+unsigned a,
+unsigned b,
+unsigned g,
+unsigned d,
+unsigned e,
+unsigned o)
+{
+
+   bit_flags->alpha = a;
+   bit_flags->beta = b;
+   bit_flags->gamma = g;
+   bit_flags->delta = d;
+   bit_flags->epsilon = e;
+   bit_flags->omega = o;
 }
 
 /*****************************************************************
@@ -119,7 +205,6 @@ void loop_count () {
  * IN  unsigned e  -- 0 or 1 
  * IN  unsigned o  -- 0 or 1 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_bit_flags (
 struct bit_flags_t *bit_flags,
 unsigned a,
@@ -128,16 +213,6 @@ unsigned g,
 unsigned d,
 unsigned e,
 unsigned o)
-#else
-void init_bit_flags (bit_flags,a,b,g,d,e,o) 
-struct bit_flags_t *bit_flags;
-unsigned a;
-unsigned b;
-unsigned g;
-unsigned d;
-unsigned e;
-unsigned o; 
-#endif
 {
 
    bit_flags->alpha = a;
@@ -163,7 +238,6 @@ unsigned o;
  * IN  unsigned e  -- 0 or 1 
  * IN  unsigned o  -- 0 or 1 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_bit_flags_combo (
 struct bit_flags_combo_t *bit_flags_combo,
 unsigned a,
@@ -174,18 +248,6 @@ unsigned d,
 char ch2,
 unsigned e,
 unsigned o)
-#else
-void init_bit_flags_combo (bit_flags_combo, a, b, ch1, g, d, ch2, e, o)
-struct bit_flags_combo_t *bit_flags_combo;
-unsigned a;
-unsigned b;
-char ch1;
-unsigned g;
-unsigned d;
-char ch2;
-unsigned e;
-unsigned o;
-#endif
 {
 
    bit_flags_combo->alpha = a;
@@ -204,13 +266,7 @@ unsigned o;
  * OUT  struct one_double_t *one_double  -- structure to fill 
  * IN   double init_val
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_one_double ( struct one_double_t *one_double, double init_val)
-#else
-void init_one_double (one_double, init_val)
-struct one_double_t *one_double; 
-double init_val;
-#endif
 {
 
      one_double->double1  = init_val;
@@ -222,17 +278,10 @@ double init_val;
  * IN  float init_val1 
  * IN  float init_val2 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_two_floats (
      struct two_floats_t *two_floats,
      float init_val1,
      float init_val2)
-#else
-void init_two_floats (two_floats, init_val1, init_val2)
-struct two_floats_t *two_floats;
-float init_val1;
-float init_val2;
-#endif
 {
 
      two_floats->float1 = init_val1;
@@ -246,19 +295,11 @@ float init_val2;
  * IN  char init_val2 
  * IN  char init_val3 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_three_chars (
 struct three_char_t *three_char,
 char init_val1,
 char init_val2,
 char init_val3)
-#else
-void init_three_chars ( three_char, init_val1, init_val2, init_val3)
-struct three_char_t *three_char;
-char init_val1;
-char init_val2;
-char init_val3;
-#endif
 {
 
      three_char->ch1 = init_val1;
@@ -275,7 +316,6 @@ char init_val3;
  * IN  char init_val4 
  * IN  char init_val5 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_five_chars (
 struct five_char_t *five_char,
 char init_val1,
@@ -283,15 +323,6 @@ char init_val2,
 char init_val3,
 char init_val4,
 char init_val5)
-#else
-void init_five_chars ( five_char, init_val1, init_val2, init_val3, init_val4, init_val5)
-struct five_char_t *five_char;
-char init_val1;
-char init_val2;
-char init_val3;
-char init_val4;
-char init_val5;
-#endif
 {
 
      five_char->ch1 = init_val1;
@@ -307,17 +338,10 @@ char init_val5;
  * IN  int  init_val1 
  * IN  char init_val2 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_int_char_combo (
 struct int_char_combo_t *combo,
 int init_val1,
 char init_val2)
-#else
-void init_int_char_combo ( combo, init_val1, init_val2)
-struct int_char_combo_t *combo;
-int init_val1;
-char init_val2;
-#endif
 {
 
      combo->int1 = init_val1;
@@ -329,31 +353,54 @@ char init_val2;
  * OUT struct small_rep_into_t *small_struct -- structure to be filled
  * IN  int  seed 
  *****************************************************************/
-#ifdef PROTOTYPES
 void init_struct_rep(
      struct small_rep_info_t *small_struct,
      int seed)
-#else
-void init_struct_rep( small_struct, seed)
-struct small_rep_info_t *small_struct;
-int    seed;
-#endif
 {
 
       small_struct->value = 2 + (seed*2); 
       small_struct->head = 0; 
 }
 
+/*****************************************************************
+ * PRINT_BIT_FLAGS_CHAR : 
+ * IN struct bit_flags_char_t bit_flags 
+ ****************************************************************/
+struct bit_flags_char_t print_bit_flags_char (struct bit_flags_char_t bit_flags)
+{
+
+     if (bit_flags.alpha) printf("alpha\n");
+     if (bit_flags.beta) printf("beta\n");
+     if (bit_flags.gamma) printf("gamma\n");
+     if (bit_flags.delta) printf("delta\n");
+     if (bit_flags.epsilon) printf("epsilon\n");
+     if (bit_flags.omega) printf("omega\n");
+     return bit_flags;
+     
+}
+
+/*****************************************************************
+ * PRINT_BIT_FLAGS_SHORT : 
+ * IN struct bit_flags_short_t bit_flags 
+ ****************************************************************/
+struct bit_flags_short_t print_bit_flags_short (struct bit_flags_short_t bit_flags)
+{
+
+     if (bit_flags.alpha) printf("alpha\n");
+     if (bit_flags.beta) printf("beta\n");
+     if (bit_flags.gamma) printf("gamma\n");
+     if (bit_flags.delta) printf("delta\n");
+     if (bit_flags.epsilon) printf("epsilon\n");
+     if (bit_flags.omega) printf("omega\n");
+     return bit_flags;
+     
+}
+
 /*****************************************************************
  * PRINT_BIT_FLAGS : 
  * IN struct bit_flags_t bit_flags 
  ****************************************************************/
-#ifdef PROTOTYPES
 struct bit_flags_t print_bit_flags (struct bit_flags_t bit_flags)
-#else
-struct bit_flags_t print_bit_flags ( bit_flags)
-struct bit_flags_t bit_flags;
-#endif
 {
 
      if (bit_flags.alpha) printf("alpha\n");
@@ -370,12 +417,7 @@ struct bit_flags_t bit_flags;
  * PRINT_BIT_FLAGS_COMBO : 
  * IN struct bit_flags_combo_t bit_flags_combo 
  ****************************************************************/
-#ifdef PROTOTYPES
 struct bit_flags_combo_t print_bit_flags_combo (struct bit_flags_combo_t bit_flags_combo)
-#else
-struct bit_flags_combo_t print_bit_flags_combo ( bit_flags_combo )
-struct bit_flags_combo_t bit_flags_combo;
-#endif
 {
 
      if (bit_flags_combo.alpha) printf("alpha\n");
@@ -393,12 +435,7 @@ struct bit_flags_combo_t bit_flags_combo;
  * PRINT_ONE_DOUBLE : 
  * IN struct one_double_t one_double 
  ****************************************************************/
-#ifdef PROTOTYPES
 struct one_double_t print_one_double (struct one_double_t one_double)
-#else
-struct one_double_t print_one_double ( one_double )
-struct one_double_t one_double;
-#endif
 {
 
      printf("Contents of one_double_t: \n\n");
@@ -411,12 +448,7 @@ struct one_double_t one_double;
  * PRINT_TWO_FLOATS : 
  * IN struct two_floats_t two_floats 
  ****************************************************************/
-#ifdef PROTOTYPES
 struct two_floats_t print_two_floats (struct two_floats_t two_floats)
-#else
-struct two_floats_t print_two_floats ( two_floats ) 
-struct two_floats_t two_floats;
-#endif
 {
 
      printf("Contents of two_floats_t: \n\n");
@@ -429,12 +461,7 @@ struct two_floats_t two_floats;
  * PRINT_THREE_CHARS : 
  * IN struct three_char_t three_char
  ****************************************************************/
-#ifdef PROTOTYPES
 struct three_char_t print_three_chars (struct three_char_t three_char)
-#else
-struct three_char_t print_three_chars ( three_char ) 
-struct three_char_t three_char;
-#endif
 {
 
      printf("Contents of three_char_t: \n\n");
@@ -447,12 +474,7 @@ struct three_char_t three_char;
  * PRINT_FIVE_CHARS : 
  * IN struct five_char_t five_char
  ****************************************************************/
-#ifdef PROTOTYPES
 struct five_char_t print_five_chars (struct five_char_t five_char)
-#else
-struct five_char_t print_five_chars ( five_char )
-struct five_char_t five_char;
-#endif
 {
 
      printf("Contents of five_char_t: \n\n");
@@ -467,12 +489,7 @@ struct five_char_t five_char;
  * PRINT_INT_CHAR_COMBO : 
  * IN struct int_char_combo_t int_char_combo
  ****************************************************************/
-#ifdef PROTOTYPES
 struct int_char_combo_t print_int_char_combo (struct int_char_combo_t int_char_combo)
-#else
-struct int_char_combo_t print_int_char_combo ( int_char_combo )
-struct int_char_combo_t int_char_combo;
-#endif
 {
 
      printf("Contents of int_char_combo_t: \n\n");
@@ -484,12 +501,7 @@ struct int_char_combo_t int_char_combo;
 /*****************************************************************
  * PRINT_STRUCT_REP : 
  ****************************************************************/
-#ifdef PROTOTYPES
 struct small_rep_info_t print_struct_rep(struct small_rep_info_t struct1)
-#else
-struct small_rep_info_t print_struct_rep( struct1 )
-struct small_rep_info_t struct1;
-#endif
 {
 
   printf("Contents of struct1: \n\n");
@@ -502,12 +514,7 @@ struct small_rep_info_t struct1;
 }
 
 
-#ifdef PROTOTYPES
 struct array_rep_info_t print_one_large_struct(struct array_rep_info_t linked_list1)
-#else
-struct array_rep_info_t print_one_large_struct( linked_list1 )
-struct array_rep_info_t linked_list1;
-#endif
 {
 
 
@@ -523,13 +530,7 @@ struct array_rep_info_t linked_list1;
  * IN struct array_rep_info_t *linked_list
  * IN int    seed
  ****************************************************************/
-#ifdef PROTOTYPES
 void init_array_rep(struct array_rep_info_t *linked_list, int seed)
-#else
-void init_array_rep( linked_list, seed )
-struct array_rep_info_t *linked_list;
-int    seed;
-#endif
 {
 
   int index;
@@ -553,6 +554,8 @@ int main ()  {
   /* variables for testing a small structures and a very long argument list
    */
    struct small_rep_info_t  *struct1;
+   struct bit_flags_char_t  *cflags;
+   struct bit_flags_short_t *sflags;
    struct bit_flags_t       *flags;
    struct bit_flags_combo_t *flags_combo;
    struct three_char_t      *three_char;
@@ -561,6 +564,7 @@ int main ()  {
    struct one_double_t      *d1;
    struct two_floats_t      *f3;
 
+  gdb_unbuffer_output ();
 
   /* Allocate space for large structures 
    */
@@ -577,6 +581,8 @@ int main ()  {
   /* Allocate space for small structures 
    */
   struct1     = (struct small_rep_info_t  *)malloc(sizeof(struct small_rep_info_t));
+  cflags       = (struct bit_flags_char_t *)malloc(sizeof(struct bit_flags_char_t));
+  sflags       = (struct bit_flags_short_t *)malloc(sizeof(struct bit_flags_short_t));
   flags       = (struct bit_flags_t *)malloc(sizeof(struct bit_flags_t));
   flags_combo = (struct bit_flags_combo_t *)malloc(sizeof(struct bit_flags_combo_t));
   three_char  = (struct three_char_t *)malloc(sizeof(struct three_char_t));
@@ -590,6 +596,10 @@ int main ()  {
    */
   init_one_double ( d1, 1.11111); 
   init_two_floats ( f3, -2.345, 1.0); 
+  init_bit_flags_char(cflags, (unsigned)1, (unsigned)0, (unsigned)1, 
+                     (unsigned)0, (unsigned)1, (unsigned)0 ); 
+  init_bit_flags_short(sflags, (unsigned)1, (unsigned)0, (unsigned)1, 
+                      (unsigned)0, (unsigned)1, (unsigned)0 ); 
   init_bit_flags(flags, (unsigned)1, (unsigned)0, (unsigned)1, 
                 (unsigned)0, (unsigned)1, (unsigned)0 ); 
   init_bit_flags_combo(flags_combo, (unsigned)1, (unsigned)0, 'y',
@@ -605,6 +615,8 @@ int main ()  {
    */
   print_one_double(*d1);
   print_two_floats(*f3);
+  print_bit_flags_char(*cflags);
+  print_bit_flags_short(*sflags);
   print_bit_flags(*flags);
   print_bit_flags_combo(*flags_combo);
   print_three_chars(*three_char);
@@ -612,9 +624,9 @@ int main ()  {
   print_int_char_combo(*int_char_combo);
   print_struct_rep(*struct1);
 
-  loop_count();
+  loop_count();                        /* -finish2- */
 
-  return 0;
+  return 0;                    /* -finish1- */
 }
 
 
This page took 0.029232 seconds and 4 git commands to generate.