You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifdef TYPE_NOSPACE_long_long
+#define TYPE long long
+#elif defined TYPE_NOSPACE_signed_char
+#define TYPE signed char
+#else
+#define TYPE TYPE_NOSPACE
+#endif
+
 extern TYPE func (void);
 
 static void
 
     if { $skip_float_test && ($type == "float" || $type == "double") } {
        continue
     }
-    set typeesc [string map {{ } {\ }} $type]
-    set typenospace [string map {{ } -} $type]
+    set typenospace_dash \
+       [string map {{ } -} $type]
+    set typenospace_underscore \
+       [string map {{ } _} $type]
 
     standard_testfile .c return-nodebug1.c
 
-    set additional_flags "additional_flags=-DTYPE=$typeesc"
+    set additional_flags {}
+    lappend additional_flags \
+       additional_flags=-DTYPE_NOSPACE=$typenospace_underscore
+    lappend additional_flags \
+       additional_flags=-DTYPE_NOSPACE_$typenospace_underscore
 
     if {[prepare_for_testing_full "failed to prepare" \
-            [list ${testfile}-${typenospace} debug \
-                 $srcfile [list debug $additional_flags] \
-                 $srcfile2 [list $additional_flags]]]} {
+            [list ${testfile}-${typenospace_dash} debug \
+                 $srcfile [concat {debug} $additional_flags] \
+                 $srcfile2 $additional_flags]]} {
        continue
     }
 
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifdef TYPE_NOSPACE_long_long
+#define TYPE long long
+#elif defined TYPE_NOSPACE_signed_char
+#define TYPE signed char
+#else
+#define TYPE TYPE_NOSPACE
+#endif
+
 TYPE
 func (void)
 {