]> git.ipfire.org Git - people/ms/gcc.git/commitdiff
Revert 'Use more ARRAY_SIZE.' for mkoffload
authorTobias Burnus <tobias@codesourcery.com>
Tue, 17 May 2022 18:46:29 +0000 (20:46 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Tue, 17 May 2022 18:54:32 +0000 (20:54 +0200)
Revert commit r13-472-gca32b29ec3e92dcf8dda5c2501d0baf9dd1cb09d partially;
namely for {gcn,nvptx}/mkoffload.cc, only.

The patch changed 'sizeof(...)/sizeof(...[0])' to the 'ARRAY_SIZE' macro,
which is in principle a good idea – except that in the two mkoffload.cc,
the change happened inside a string that is used to generate plain C code.

With offlading to nvptx or gcn, the mkoffload genenates then the C file
and compilation of the latter fails with
"warning: implicit declaration of function 'ARRAY_SIZE'" followed by
"error: initializer element is not constant"

gcc/
* config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
* config/nvptx/mkoffload.cc (process): Likewise.

gcc/config/gcn/mkoffload.cc
gcc/config/nvptx/mkoffload.cc

index 9db2124b12989f71fab5a052e3fc56dfe17294d6..94ba7ffa5af4e794973f7c376c5c2d389f7a2e90 100644 (file)
@@ -723,7 +723,7 @@ process_obj (FILE *in, FILE *cfile)
           "  unsigned global_variable_count;\n"
           "} target_data = {\n"
           "  &gcn_image,\n"
-          "  ARRAY_SIZE (gcn_kernels),\n"
+          "  sizeof (gcn_kernels) / sizeof (gcn_kernels[0]),\n"
           "  gcn_kernels,\n"
           "  gcn_num_vars\n"
           "};\n\n");
index fa3b4b768214eabaceb7881a0c04b1685cc2a122..b28c1a32292a62b6b871c9e656091a50a252dd30 100644 (file)
@@ -316,11 +316,11 @@ process (FILE *in, FILE *out)
           "  const struct nvptx_fn *fn_names;\n"
           "  unsigned fn_num;\n"
           "} target_data = {\n"
-          "  ptx_objs, ARRAY_SIZE (ptx_objs),\n"
+          "  ptx_objs, sizeof (ptx_objs) / sizeof (ptx_objs[0]),\n"
           "  var_mappings,"
-          "  ARRAY_SIZE (var_mappings),\n"
+          "  sizeof (var_mappings) / sizeof (var_mappings[0]),\n"
           "  func_mappings,"
-          "  ARRAY_SIZE (func_mappings)\n"
+          "  sizeof (func_mappings) / sizeof (func_mappings[0])\n"
           "};\n\n");
 
   fprintf (out, "#ifdef __cplusplus\n"