Changeset dd7c6520


Ignore:
Timestamp:
Mar 5, 2020, 4:09:54 PM (5 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
Children:
bc9384ac
Parents:
f9723e8
Message:

fixed printing int128 binary, and started fixing int128 decimal

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/iostream.cfa

    rf9723e8 rdd7c6520  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Feb 20 15:53:23 2020
    13 // Update Count     : 829
     12// Last Modified On : Thu Mar  5 15:56:16 2020
     13// Update Count     : 834
    1414//
    1515
     
    536536static void base10_128( ostype & os, _Ostream_Manip(T) fmt ) { \
    537537        if ( fmt.val > UINT64_MAX ) { \
    538                 fmt.val /= P10_UINT64; \
    539                 base10_128( os, fmt ); /* recursive */ \
     538                base10_128( os, fmt.val / P10_UINT64 ); /* recursive */ \
    540539                _Ostream_Manip(unsigned long long int) fmt2 @= { (uint64_t)(fmt.val % P10_UINT64), 0, 19, 'u', { .all : 0 } }; \
    541540                fmt2.flags.nobsdp = true; \
     
    544543                (ostype &)(os | fmt2); \
    545544        } else { \
    546                 printf( "fmt %c %lld %d\n", fmt.base, fmt.val, fmt.all ); \
    547                 (ostype &)(os | fmt); \
     545                printf( "fmt %c %lld %d\n", fmt.base, (unsigned long long int)fmt.val, fmt.all ); \
     546                _Ostream_Manip(SIGNED long long int) x @= { (unsigned long long int)fmt.val, fmt.wd, fmt.pc, fmt.base, { .all : fmt.all } }; \
     547                (ostype &)(os | x); \
    548548        } /* if */ \
    549549} /* base10_128 */                                                 \
     
    552552                if ( $sepPrt( os ) ) fmt( os, "%s", $sepGetCur( os ) ); \
    553553\
    554                 if ( f.base == 'b' | f.base == 'o' | f.base == 'x' | f.base == 'X' ) { \
     554                if ( f.base == 'b' | f.base == 'B' | f.base == 'o' | f.base == 'x' | f.base == 'X' ) { \
    555555                        unsigned long long int msig = (unsigned long long int)(f.val >> 64); \
    556556                        unsigned long long int lsig = (unsigned long long int)(f.val); \
     
    562562                        } else { \
    563563                                fmt2.flags.pad0 = fmt2.flags.nobsdp = true;     \
    564                                 if ( f.base == 'b' ) { \
     564                                if ( f.base == 'b' | f.base == 'B' ) { \
    565565                                        if ( f.wd > 64 ) fmt.wd = f.wd - 64; \
    566566                                        fmt2.wd = 64; \
Note: See TracChangeset for help on using the changeset viewer.