www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/04/09/23:49:13

Xref: news2.mv.net comp.os.msdos.djgpp:2566
From: Stephen Davies <pjdavies AT werple DOT mira DOT net DOT au>
Newsgroups: comp.os.msdos.djgpp
Subject: Optimization error in GCC 2.7.2???
Date: Tue, 09 Apr 1996 16:30:00 -0700
Organization: werple public-access Internet
Lines: 11
Message-ID: <316AF2F8.49BA@werple.mira.net.au>
NNTP-Posting-Host: dp-m-b57.werple.net.au
Mime-Version: 1.0
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I had some code which left-shift-equaled 1 to 128 then back 1 in a loop,
( bit<<=1 ) extracting 1-bit data from an array of chars. 
(A 2-colour font, actually.)
 The code something like: if(data[i] & bit) PutPixel(x,y,col) (C++)
 When optimizing with -O6 (Allegro 2.0 uses 6, even though docs say 0-3)
The "& bit" is optimized out of existence! Without optimization it 
stayed. This could be a pretty serious bug!
 I worked around it by doing it step by step outside the "if", but it 
would be slower.

 Stephen Davies

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019