Updated comments in objc-act.c
authorNicola Pero <nicola.pero@meta-innovation.com>
Sat, 19 Feb 2011 01:54:03 +0000 (01:54 +0000)
committerNicola Pero <nicola@gcc.gnu.org>
Sat, 19 Feb 2011 01:54:03 +0000 (01:54 +0000)
From-SVN: r170299

gcc/objc/ChangeLog
gcc/objc/objc-act.c

index 8e76292fd88e29b5d564f83ef2276cf1f608b8b7..799cd408a66339a745a0689e0126b025347d3f53 100644 (file)
@@ -1,3 +1,8 @@
+2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
+
+       * objc-act.c (objc_init, generate_struct_by_value_array): Updated
+       comments.
+
 2011-01-19  Nicola Pero  <nicola.pero@meta-innovation.com>
 
        * objc-act.c: Updated comments.
index 0e32c23515e3509d41d38509af1305cd75d2d325..7a329219f38c553900eda15eaad9e963e27cfc60 100644 (file)
@@ -330,8 +330,9 @@ generate_struct_by_value_array (void)
   int aggregate_in_mem[32];
   int found = 0;
 
-  /* ??? as an example, m64/ppc/Darwin can pass up to 8*long+13*double in regs.
-     Presumably no platform passes 32 byte structures in a register.  */
+  /* Presumably no platform passes 32 byte structures in a register.  */
+  /* ??? As an example, m64/ppc/Darwin can pass up to 8*long+13*double
+     in registers.  */
   for (i = 1; i < 32; i++)
     {
       char buffer[5];
@@ -379,8 +380,24 @@ objc_init (void)
 #endif
     return false;
 
+  /* print_struct_values is triggered by -print-runtime-info (used
+     when building libobjc, with an empty file as input).  It does not
+     require any ObjC setup, and it never returns.
+
+     -fcompare-debug is used to check the compiler output; we are
+     executed twice, once with flag_compare_debug set, and once with
+     it not set.  If the flag is used together with
+     -print-runtime-info, we want to print the runtime info only once,
+     else it would be output in duplicate.  So we check
+     flag_compare_debug to output it in only one of the invocations.
+
+     As a side effect, this also that means -fcompare-debug
+     -print-runtime-info will run the compiler twice, and compare the
+     generated assembler file; the first time the compiler exits
+     immediately (producing no file), and the second time it compiles
+     an empty file.  This checks, as a side effect, that compiling an
+     empty file produces no assembler output.  */
   if (print_struct_values && !flag_compare_debug)
-    /* This routine does not require any ObjC set-up and never returns.  */
     generate_struct_by_value_array ();
 
   /* Set up stuff used by FE parser and all runtimes.  */