Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Avoid non-standard statement expressions.
[simgrid.git] / tools / smpi / generate_smpi_defines.pl
index b741fca..fefb7d0 100755 (executable)
@@ -1,6 +1,7 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 # Copyright 2016 Vincent Danjean <vincent.danjean@inria.fr>
-# 
+#                Christian Heinrich <franz-christian.heinrich@inria.fr>
+#
 # Call this script like this:
 # C/C++  : ./generate_smpi_defines.pl ../../include/smpi/smpi.h
 # FORTRAN: ./generate_smpi_defines.pl -f ../../include/smpi/smpi.h
@@ -11,7 +12,7 @@
 # with MPI+TAU).
 use strict;
 use warnings;
-use Getopt::Std; 
+use Getopt::Std;
 
 my %options=();
 getopts("fc", \%options);
@@ -25,7 +26,7 @@ if (defined $options{f}) {
 }
 
 print "$commentChar This file has been automatically generated by the script\n";
-print "$commentChar in " . __FILE__ ."\n";
+print "$commentChar in tools/smpi/generate_smpi_defines.pl\n";
 print "$commentChar DO NOT EDIT MANUALLY. ALL CHANGES WILL BE OVERWRITTEN!\n";
 
 # Formatting of the output
@@ -37,10 +38,11 @@ sub output_macro {
   # This is a GCC extension. The last statement is the value of the expression
   # in parentheses.
   if (defined $options{f}) {
-    print "#define ". uc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__); call ". lc $id ."\n";
+    print "#define ". lc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__); call ". ucfirst $id ."\n";
+    print "#define ". uc($id) ." smpi_trace_set_call_location(__FILE__,__LINE__); call ". ucfirst $id ."\n";
   }
   else {
-    print "#define $id(...) ({ smpi_trace_set_call_location(__FILE__,__LINE__); $id(__VA_ARGS__); })\n";
+    print "#define $id(...) (smpi_trace_set_call_location(__FILE__, __LINE__), $id(__VA_ARGS__))\n";
   }
 }
 
@@ -54,7 +56,7 @@ while (defined($line = <>)) {
     }
     $incall=1;
     $wholemacro = $line;
-  } elsif ($incall && $line =~ /^\s+\S/) { 
+  } elsif ($incall && $line =~ /^\s+\S/) {
     # Did we already start parsing an MPI_CALL macro? If so, just concatenate
     $wholemacro .= ' '.$line;
   } elsif ($incall) {