g++ 3.2, djvulibre i athlon

Jakub Bogusz qboosh w pld.org.pl
Śro, 4 Gru 2002, 18:16:15 CET


On Wed, Dec 04, 2002 at 03:05:33PM +0100, Michal Moskal wrote:
> On Wed, Dec 04, 2002 at 12:16:59AM +0100, Jakub Bogusz wrote:
> > WRESZCIE namierzyłem byka. Tylko gdzie - w gcc, czy w djvulibre?
> > 
> > Ktoś chyba tutaj (malekith?) pisał, że C++ nie dopuszcza równoczesnego
> > istnienia wskaźników różnych typów do tej samej zmiennej i gcc 3.x
> > wykorzystuje to przy optymalizacji. Jakie są dokładne ograniczenia?
> 
> Od razu zaznaczam, że nie wiem na 100%, na pewno jest to napisane w
> standardzie C++ (i/lub C), ale nie da się ukryć, że czytanie go to
> średnia przyjemność. Tak czy inaczej void* może być aliasem dla T*, dla
> dowolnego T. Natomiast nie wiem jak to się przenosi na void*&. Na zdrowy
> rozum powinno się przenosić.

Reguły aliasingu dla C++ składają się głównie z wywołania funkcji
z c_common...
Nie wiem jak tamte funkcje traktują referencje.

> Czy ten kod działa z -fno-strict-aliasing?

Właśnie sprawdziłem - tak.
Dla athlona .s różni się w 3 miejscach, jedno z nich to wspomniany
fragment.
Dla i686 różni się w 2 pozostałych miejscach.


-- 
Jakub Bogusz    http://www.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl