# HG changeset patch
# User Manuele Conti <conti.ma@alice.it>
# Date 1349526064 -7200
# Node ID a010763dd4cb7904dca32a5f906cddcfab6cd129
# Parent  51a2fa6441b993bc119e8a9fb9c7a35415b32f97
Fix stage4 for compare expressions.

diff -r 51a2fa6441b9 -r a010763dd4cb stage4/generate_c/generate_c_st.cc
--- a/stage4/generate_c/generate_c_st.cc	Fri Oct 26 10:11:28 2012 +0100
+++ b/stage4/generate_c/generate_c_st.cc	Sat Oct 06 14:21:04 2012 +0200
@@ -467,50 +467,50 @@
 }
 
 void *visit(equ_expression_c *symbol) {
-  if (get_datatype_info_c::is_TIME_compatible      (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_STRING_compatible(symbol->datatype))
-    return print_compare_function("EQ_", symbol->datatype, symbol->l_exp, symbol->r_exp);
+  if (get_datatype_info_c::is_TIME_compatible      (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_STRING_compatible(symbol->l_exp->datatype))
+    return print_compare_function("EQ_", symbol->l_exp->datatype, symbol->l_exp, symbol->r_exp);
   return print_binary_expression(symbol->l_exp, symbol->r_exp, " == ");
 }
 
 void *visit(notequ_expression_c *symbol) {
-  if (get_datatype_info_c::is_TIME_compatible      (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_STRING_compatible(symbol->datatype))
-    return print_compare_function("NE_", symbol->datatype, symbol->l_exp, symbol->r_exp);
+  if (get_datatype_info_c::is_TIME_compatible      (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_STRING_compatible(symbol->l_exp->datatype))
+    return print_compare_function("NE_", symbol->l_exp->datatype, symbol->l_exp, symbol->r_exp);
   return print_binary_expression(symbol->l_exp, symbol->r_exp, " != ");
 }
 
 void *visit(lt_expression_c *symbol) {
-  if (get_datatype_info_c::is_TIME_compatible      (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_STRING_compatible(symbol->datatype))
-    return print_compare_function("LT_", symbol->datatype, symbol->l_exp, symbol->r_exp);
+  if (get_datatype_info_c::is_TIME_compatible      (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_STRING_compatible(symbol->l_exp->datatype))
+    return print_compare_function("LT_", symbol->l_exp->datatype, symbol->l_exp, symbol->r_exp);
   return print_binary_expression(symbol->l_exp, symbol->r_exp, " < ");
 }
 
 void *visit(gt_expression_c *symbol) {
-  if (get_datatype_info_c::is_TIME_compatible      (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_STRING_compatible(symbol->datatype))
-    return print_compare_function("GT_", symbol->datatype, symbol->l_exp, symbol->r_exp);
+  if (get_datatype_info_c::is_TIME_compatible      (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_STRING_compatible(symbol->l_exp->datatype))
+    return print_compare_function("GT_", symbol->l_exp->datatype, symbol->l_exp, symbol->r_exp);
   return print_binary_expression(symbol->l_exp, symbol->r_exp, " > ");
 }
 
 void *visit(le_expression_c *symbol) {
-  if (get_datatype_info_c::is_TIME_compatible      (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_STRING_compatible(symbol->datatype))
-    return print_compare_function("LE_", symbol->datatype, symbol->l_exp, symbol->r_exp);
+  if (get_datatype_info_c::is_TIME_compatible      (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_STRING_compatible(symbol->l_exp->datatype))
+    return print_compare_function("LE_", symbol->l_exp->datatype, symbol->l_exp, symbol->r_exp);
   return print_binary_expression(symbol->l_exp, symbol->r_exp, " <= ");
 }
 
 void *visit(ge_expression_c *symbol) {
-  if (get_datatype_info_c::is_TIME_compatible      (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->datatype) ||
-      get_datatype_info_c::is_ANY_STRING_compatible(symbol->datatype))
-    return print_compare_function("GE_", symbol->datatype, symbol->l_exp, symbol->r_exp);
+  if (get_datatype_info_c::is_TIME_compatible      (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_DATE_compatible  (symbol->l_exp->datatype) ||
+      get_datatype_info_c::is_ANY_STRING_compatible(symbol->l_exp->datatype))
+    return print_compare_function("GE_", symbol->l_exp->datatype, symbol->l_exp, symbol->r_exp);
   return print_binary_expression(symbol->l_exp, symbol->r_exp, " >= ");
 }