Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset 85369b1 in mainline


Ignore:
Timestamp:
2010-11-24T17:59:02Z (11 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master
Children:
475fe35
Parents:
dc0b964
Message:

avoid unwanted bias towards "larger" prefixes/suffixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/autotool.py

    rdc0b964 r85369b1  
    271271                                                unsigned_sizes[name] = value_int
    272272                                                unsigned_tags[tag] = value_int
    273                                                 if (strc != ""):
    274                                                         unsigned_strcs[strc] = value_int
    275                                                 if (conc != ""):
    276                                                         unsigned_concs[conc] = value_int
     273                                                unsigned_strcs[strc] = value_int
     274                                                unsigned_concs[conc] = value_int
    277275                                        elif (subcategory == "signed"):
    278276                                                signed_sizes[name] = value_int
    279277                                                signed_tags[tag] = value_int
    280                                                 if (strc != ""):
    281                                                         signed_strcs[strc] = value_int
    282                                                 if (conc != ""):
    283                                                         signed_concs[conc] = value_int
     278                                                signed_strcs[strc] = value_int
     279                                                signed_concs[conc] = value_int
    284280                                        else:
    285281                                                print_error(["Unexpected keyword \"%s\" in \"%s\" on line %s." % (subcategory, PROBE_OUTPUT, j), COMPILER_FAIL])
     
    329325               
    330326                if (not fnd):
    331                         macros.append({'oldmacro': "\"o\"", 'newmacro': "PRIo%u" % (b * 8)})
    332                         macros.append({'oldmacro': "\"u\"", 'newmacro': "PRIu%u" % (b * 8)})
    333                         macros.append({'oldmacro': "\"x\"", 'newmacro': "PRIx%u" % (b * 8)})
    334                         macros.append({'oldmacro': "\"X\"", 'newmacro': "PRIX%u" % (b * 8)})
     327                        print_error(['Unable to find appropriate unsigned printf formatter for %u bytes' % b,
     328                                     COMPILER_FAIL])
    335329               
    336330               
     
    343337               
    344338                if (not fnd):
    345                         macros.append({'oldmacro': "\"d\"", 'newmacro': "PRId%u" % (b * 8)})
     339                        print_error(['Unable to find appropriate signed printf formatter for %u bytes' % b,
     340                                     COMPILER_FAIL])
    346341               
    347342               
     
    349344                for name, value in probe['unsigned_concs'].items():
    350345                        if (value == b):
    351                                 macros.append({'oldmacro': "c ## U%s" % name, 'newmacro': "UINT%u_C(c)" % (b * 8)})
    352                                 fnd = True
    353                                 break
    354                
    355                 if (not fnd):
    356                         macros.append({'oldmacro': "c ## U", 'newmacro': "UINT%u_C(c)" % (b * 8)})
     346                                if ((name.startswith('@')) or (name == "")):
     347                                        macros.append({'oldmacro': "c ## U", 'newmacro': "UINT%u_C(c)" % (b * 8)})
     348                                else:
     349                                        macros.append({'oldmacro': "c ## U%s" % name, 'newmacro': "UINT%u_C(c)" % (b * 8)})
     350                                fnd = True
     351                                break
     352               
     353                if (not fnd):
     354                        print_error(['Unable to find appropriate unsigned literal macro for %u bytes' % b,
     355                                     COMPILER_FAIL])
    357356               
    358357               
     
    360359                for name, value in probe['signed_concs'].items():
    361360                        if (value == b):
    362                                 macros.append({'oldmacro': "c ## %s" % name, 'newmacro': "INT%u_C(c)" % (b * 8)})
    363                                 fnd = True
    364                                 break
    365                
    366                 if (not fnd):
    367                         macros.append({'oldmacro': "c", 'newmacro': "INT%u_C(c)" % (b * 8)})
     361                                if ((name.startswith('@')) or (name == "")):
     362                                        macros.append({'oldmacro': "c", 'newmacro': "INT%u_C(c)" % (b * 8)})
     363                                else:
     364                                        macros.append({'oldmacro': "c ## %s" % name, 'newmacro': "INT%u_C(c)" % (b * 8)})
     365                                fnd = True
     366                                break
     367               
     368                if (not fnd):
     369                        print_error(['Unable to find appropriate unsigned literal macro for %u bytes' % b,
     370                                     COMPILER_FAIL])
    368371       
    369372        for tag in ['CHAR', 'SHORT', 'INT', 'LONG', 'LLONG']:
     
    568571                probe = probe_compiler(common,
    569572                        [
    570                                 {'type': 'char', 'tag': 'CHAR', 'strc': '"hh"', 'conc': '""'},
    571                                 {'type': 'short int', 'tag': 'SHORT', 'strc': '"h"', 'conc': '""'},
     573                                {'type': 'char', 'tag': 'CHAR', 'strc': '"hh"', 'conc': '"@@"'},
     574                                {'type': 'short int', 'tag': 'SHORT', 'strc': '"h"', 'conc': '"@"'},
    572575                                {'type': 'int', 'tag': 'INT', 'strc': '""', 'conc': '""'},
    573576                                {'type': 'long int', 'tag': 'LONG', 'strc': '"l"', 'conc': '"L"'},
Note: See TracChangeset for help on using the changeset viewer.