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/

Attachment: SIEVE_UNION.patch
Description: Binary data


Attachment: pgpjsabmK0EnL.pgp
Description: PGP signature

Reply via email to