d: Use toStringExp instead of explicit cast
authorIain Buclaw <ibuclaw@gdcproject.org>
Mon, 15 Jun 2020 15:43:31 +0000 (17:43 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Tue, 16 Jun 2020 21:34:20 +0000 (23:34 +0200)
gcc/d/ChangeLog:

* d-attribs.cc (build_attributes): Use toStringExp instead of cast.
* toir.cc (IRVisitor::visit): Likewise.

gcc/d/d-attribs.cc
gcc/d/toir.cc

index 7e55b42fd03c80ae72fc1c1535a0c5f5b27c332e..79938075a7c0158cb34c0500f9fd303e03059fa2 100644 (file)
@@ -277,7 +277,7 @@ build_attributes (Expressions *eattrs)
          return error_mark_node;
        }
 
-      StringExp *se = (StringExp*) e0;
+      StringExp *se = e0->toStringExp ();
       gcc_assert (se->sz == 1);
 
       /* Empty string attribute, just ignore it.  */
index d8a14efd6672fff2e1507a36183c5c8e59e210eb..130cbbafe00bd31b4931a3302e58cae17f3ae64b 100644 (file)
@@ -1292,7 +1292,7 @@ public:
 
   void visit (GccAsmStatement *s)
   {
-    StringExp *insn = (StringExp *)s->insn;
+    StringExp *insn = s->insn->toStringExp ();
     tree outputs = NULL_TREE;
     tree inputs = NULL_TREE;
     tree clobbers = NULL_TREE;
@@ -1307,7 +1307,7 @@ public:
            const char *sname = name ? name->toChars () : NULL;
            tree id = name ? build_string (strlen (sname), sname) : NULL_TREE;
 
-           StringExp *constr = (StringExp *)(*s->constraints)[i];
+           StringExp *constr = (*s->constraints)[i]->toStringExp ();
            const char *cstring = (const char *)(constr->len
                                                 ? constr->string : "");
            tree str = build_string (constr->len, cstring);
@@ -1333,7 +1333,7 @@ public:
       {
        for (size_t i = 0; i < s->clobbers->length; i++)
          {
-           StringExp *clobber = (StringExp *)(*s->clobbers)[i];
+           StringExp *clobber = (*s->clobbers)[i]->toStringExp ();
            const char *cstring = (const char *)(clobber->len
                                                 ? clobber->string : "");