]> gcc.gnu.org Git - gcc.git/commitdiff
(truthvalue_conversion): Specific error message when the "truthvalue" of a struct...
authorRichard Stallman <rms@gnu.org>
Sat, 1 May 1993 04:09:06 +0000 (04:09 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 1 May 1993 04:09:06 +0000 (04:09 +0000)
(truthvalue_conversion):  Specific error message when the
"truthvalue" of a struct, union, or array type operand is needed.

From-SVN: r4293

gcc/c-common.c

index e4d161f75fd5e559ec9ca1b815f9be927c414883..f4a966e880a264ba7df9930a8421a7fe05d3e9e6 100644 (file)
@@ -955,6 +955,29 @@ truthvalue_conversion (expr)
 {
   register enum tree_code code;
 
+  if (TREE_CODE (expr) == ERROR_MARK)
+    return expr;
+
+  /* These really should return error_mark_node after 2.4 is stable.
+     But not all callers handle ERROR_MARK properly.  */
+  switch (TREE_CODE (TREE_TYPE (expr)))
+    {
+    case RECORD_TYPE:
+      error ("struct type value used where scalar is required");
+      return integer_zero_node;
+
+    case UNION_TYPE:
+      error ("union type value used where scalar is required");
+      return integer_zero_node;
+
+    case ARRAY_TYPE:
+      error ("array type value used where scalar is required");
+      return integer_zero_node;
+
+    default:
+      break;
+    }
+
   switch (TREE_CODE (expr))
     {
       /* It is simpler and generates better code to have only TRUTH_*_EXPR
This page took 0.066304 seconds and 5 git commands to generate.