We ran into a problem on Tru64 where the sieve compiler was core dumping if it tried to compile a script that used 'address' or 'envelope' in it. For example, the following script would core dump sievec:
if address :contains "To" "[EMAIL PROTECTED]" { stop; }
Changing 'address' to 'header' would work just fine.
I tracked it down to a header file, tree.h. Basically, there is a union defined inside the 'Test' structure that itself defines a few structures that would share the same memory space (so to speak... if you understand C programming, then you should understand what unions are). The problem is that two of the structures defined many of the same variables as each other, but in different orders...
For example, the first structure in the union declares A, B, then C, but the second structure in the union declares A, C, then B.
This shouldn't normally be a problem, but on Tru64 5.x, it certainly is. I am not sure if it is a weirdness with 'cc', or if it is something deeper. The code compiles and without warnings, but it core dumps at runtime.
Simply changing the order in one structure or the other to match solves the problem nicely.
This could very well be related to the following bug:
<https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2476>
I submitted a patch, which I will include here, that should fix it. It is a *very* small patch :)
Scott -- +-----------------------------------------------------------------------+ Scott W. Adkins http://www.cns.ohiou.edu/~sadkins/ UNIX Systems Engineer mailto:[EMAIL PROTECTED] ICQ 7626282 Work (740)593-9478 Fax (740)593-1944 +-----------------------------------------------------------------------+ PGP Public Key available at http://www.cns.ohiou.edu/~sadkins/pgp/
SIEVE_UNION.patch
Description: Binary data
pgpjsabmK0EnL.pgp
Description: PGP signature