Listing 4 "Generated" code for a statement with a conditionally-constructed temporary requiring destruction

   const char *temp1;
   int destroy_temp2 = 0;
   if (e) goto L1;
   String temp2 = s + t;
   destroy_temp2 = 1;
   temp1 = temp2.str;
   goto L2;
L1:
   temp1 = "";
L2:
   printf("%s\n", temp1);
   if (destroy_temp2) destroy temp2;