Index: tools/autotool.py
===================================================================
--- tools/autotool.py	(revision dc0b96419120ee5e704d73292cca782d65f45781)
+++ tools/autotool.py	(revision cb819f92c9dcc88804bdf9c7b5816464ce237d44)
@@ -271,15 +271,11 @@
 						unsigned_sizes[name] = value_int
 						unsigned_tags[tag] = value_int
-						if (strc != ""):
-							unsigned_strcs[strc] = value_int
-						if (conc != ""):
-							unsigned_concs[conc] = value_int
+						unsigned_strcs[strc] = value_int
+						unsigned_concs[conc] = value_int
 					elif (subcategory == "signed"):
 						signed_sizes[name] = value_int
 						signed_tags[tag] = value_int
-						if (strc != ""):
-							signed_strcs[strc] = value_int
-						if (conc != ""):
-							signed_concs[conc] = value_int
+						signed_strcs[strc] = value_int
+						signed_concs[conc] = value_int
 					else:
 						print_error(["Unexpected keyword \"%s\" in \"%s\" on line %s." % (subcategory, PROBE_OUTPUT, j), COMPILER_FAIL])
@@ -329,8 +325,6 @@
 		
 		if (not fnd):
-			macros.append({'oldmacro': "\"o\"", 'newmacro': "PRIo%u" % (b * 8)})
-			macros.append({'oldmacro': "\"u\"", 'newmacro': "PRIu%u" % (b * 8)})
-			macros.append({'oldmacro': "\"x\"", 'newmacro': "PRIx%u" % (b * 8)})
-			macros.append({'oldmacro': "\"X\"", 'newmacro': "PRIX%u" % (b * 8)})
+			print_error(['Unable to find appropriate unsigned printf formatter for %u bytes' % b,
+			             COMPILER_FAIL])
 		
 		
@@ -343,5 +337,6 @@
 		
 		if (not fnd):
-			macros.append({'oldmacro': "\"d\"", 'newmacro': "PRId%u" % (b * 8)})
+			print_error(['Unable to find appropriate signed printf formatter for %u bytes' % b,
+			             COMPILER_FAIL])
 		
 		
@@ -349,10 +344,14 @@
 		for name, value in probe['unsigned_concs'].items():
 			if (value == b):
-				macros.append({'oldmacro': "c ## U%s" % name, 'newmacro': "UINT%u_C(c)" % (b * 8)})
-				fnd = True
-				break
-		
-		if (not fnd):
-			macros.append({'oldmacro': "c ## U", 'newmacro': "UINT%u_C(c)" % (b * 8)})
+				if ((name.startswith('@')) or (name == "")):
+					macros.append({'oldmacro': "c ## U", 'newmacro': "UINT%u_C(c)" % (b * 8)})
+				else:
+					macros.append({'oldmacro': "c ## U%s" % name, 'newmacro': "UINT%u_C(c)" % (b * 8)})
+				fnd = True
+				break
+		
+		if (not fnd):
+			print_error(['Unable to find appropriate unsigned literal macro for %u bytes' % b,
+			             COMPILER_FAIL])
 		
 		
@@ -360,10 +359,14 @@
 		for name, value in probe['signed_concs'].items():
 			if (value == b):
-				macros.append({'oldmacro': "c ## %s" % name, 'newmacro': "INT%u_C(c)" % (b * 8)})
-				fnd = True
-				break
-		
-		if (not fnd):
-			macros.append({'oldmacro': "c", 'newmacro': "INT%u_C(c)" % (b * 8)})
+				if ((name.startswith('@')) or (name == "")):
+					macros.append({'oldmacro': "c", 'newmacro': "INT%u_C(c)" % (b * 8)})
+				else:
+					macros.append({'oldmacro': "c ## %s" % name, 'newmacro': "INT%u_C(c)" % (b * 8)})
+				fnd = True
+				break
+		
+		if (not fnd):
+			print_error(['Unable to find appropriate unsigned literal macro for %u bytes' % b,
+			             COMPILER_FAIL])
 	
 	for tag in ['CHAR', 'SHORT', 'INT', 'LONG', 'LLONG']:
@@ -568,6 +571,6 @@
 		probe = probe_compiler(common,
 			[
-				{'type': 'char', 'tag': 'CHAR', 'strc': '"hh"', 'conc': '""'},
-				{'type': 'short int', 'tag': 'SHORT', 'strc': '"h"', 'conc': '""'},
+				{'type': 'char', 'tag': 'CHAR', 'strc': '"hh"', 'conc': '"@@"'},
+				{'type': 'short int', 'tag': 'SHORT', 'strc': '"h"', 'conc': '"@"'},
 				{'type': 'int', 'tag': 'INT', 'strc': '""', 'conc': '""'},
 				{'type': 'long int', 'tag': 'LONG', 'strc': '"l"', 'conc': '"L"'},
