From: SourceForge.net <no...@so...> - 2010-07-18 10:42:00
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Tracker Item Submitted) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-07-18 10:43:25
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2010-07-18 12:43 Message: I use sdcc 2.9.7 #5879. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-09-24 19:54:34
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Klaus Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2010-09-24 21:54 Message: I don't think that f() is broken since you're not storing a 0 or a 1. See C99: 6.7.2.1 Structure and union specifiers 9 A bit-field is interpreted as a signed or unsigned integer type consisting of the specified number of bits. If the value 0 or 1 is stored into a nonzero-width bit-field of type _Bool, the value of the bit-field shall compare equal to the value stored. Still g() with the explicit cast must be considered broken. ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-07-18 12:43 Message: I use sdcc 2.9.7 #5879. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-09-25 07:28:21
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Philipp Klaus Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Klaus Krause (spth) Date: 2010-09-25 09:28 Message: Well, the bitfield still has type _Bool. Thus when the assignment operator is used to store something into it, IMO it should be casted to _Bool first, and the result stored into the bitfield. C99, verse 1303: "In simple assignment (=), the value of the right operand is converted to the type of the assignment expression and replaces the value stored in the object designated by the left operand." Philipp ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2010-09-24 21:54 Message: I don't think that f() is broken since you're not storing a 0 or a 1. See C99: 6.7.2.1 Structure and union specifiers 9 A bit-field is interpreted as a signed or unsigned integer type consisting of the specified number of bits. If the value 0 or 1 is stored into a nonzero-width bit-field of type _Bool, the value of the bit-field shall compare equal to the value stored. Still g() with the explicit cast must be considered broken. ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-07-18 12:43 Message: I use sdcc 2.9.7 #5879. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |
From: SourceForge.net <no...@so...> - 2011-04-17 15:24:58
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None >Priority: 7 Private: No Submitted By: Philipp Klaus Krause (spth) Assigned to: Nobody/Anonymous (nobody) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Klaus Krause (spth) Date: 2011-04-17 17:24 Message: Increasing priority, since bad code is silently generated. Philipp ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-09-25 09:28 Message: Well, the bitfield still has type _Bool. Thus when the assignment operator is used to store something into it, IMO it should be casted to _Bool first, and the result stored into the bitfield. C99, verse 1303: "In simple assignment (=), the value of the right operand is converted to the type of the assignment expression and replaces the value stored in the object designated by the left operand." Philipp ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2010-09-24 21:54 Message: I don't think that f() is broken since you're not storing a 0 or a 1. See C99: 6.7.2.1 Structure and union specifiers 9 A bit-field is interpreted as a signed or unsigned integer type consisting of the specified number of bits. If the value 0 or 1 is stored into a nonzero-width bit-field of type _Bool, the value of the bit-field shall compare equal to the value stored. Still g() with the explicit cast must be considered broken. ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-07-18 12:43 Message: I use sdcc 2.9.7 #5879. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |
From: SourceForge.net <no...@so...> - 2011-08-27 15:12:32
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Settings changed) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 7 Private: No Submitted By: Philipp Klaus Krause (spth) >Assigned to: Philipp Klaus Krause (spth) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2011-04-17 17:24 Message: Increasing priority, since bad code is silently generated. Philipp ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-09-25 09:28 Message: Well, the bitfield still has type _Bool. Thus when the assignment operator is used to store something into it, IMO it should be casted to _Bool first, and the result stored into the bitfield. C99, verse 1303: "In simple assignment (=), the value of the right operand is converted to the type of the assignment expression and replaces the value stored in the object designated by the left operand." Philipp ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2010-09-24 21:54 Message: I don't think that f() is broken since you're not storing a 0 or a 1. See C99: 6.7.2.1 Structure and union specifiers 9 A bit-field is interpreted as a signed or unsigned integer type consisting of the specified number of bits. If the value 0 or 1 is stored into a nonzero-width bit-field of type _Bool, the value of the bit-field shall compare equal to the value stored. Still g() with the explicit cast must be considered broken. ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-07-18 12:43 Message: I use sdcc 2.9.7 #5879. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |
From: SourceForge.net <no...@so...> - 2011-08-27 17:12:14
|
Bugs item #3031197, was opened at 2010-07-18 12:42 Message generated for change (Settings changed) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. >Category: Icode generator Group: None >Status: Closed >Resolution: Fixed Priority: 7 Private: No Submitted By: Philipp Klaus Krause (spth) Assigned to: Philipp Klaus Krause (spth) Summary: Cast lost in assignment to bitfield Initial Comment: In assignments to bitfields sdcc sometimes loses casts. This is true for both implicit and explicit casts. The attached file has been compiled using sdcc -mz80 --std-c99 boolbit.c. Philipp ---------------------------------------------------------------------- >Comment By: Philipp Klaus Krause (spth) Date: 2011-08-27 19:12 Message: Fixed in sdcc revision #6768. Philipp ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2011-04-17 17:24 Message: Increasing priority, since bad code is silently generated. Philipp ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-09-25 09:28 Message: Well, the bitfield still has type _Bool. Thus when the assignment operator is used to store something into it, IMO it should be casted to _Bool first, and the result stored into the bitfield. C99, verse 1303: "In simple assignment (=), the value of the right operand is converted to the type of the assignment expression and replaces the value stored in the object designated by the left operand." Philipp ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2010-09-24 21:54 Message: I don't think that f() is broken since you're not storing a 0 or a 1. See C99: 6.7.2.1 Structure and union specifiers 9 A bit-field is interpreted as a signed or unsigned integer type consisting of the specified number of bits. If the value 0 or 1 is stored into a nonzero-width bit-field of type _Bool, the value of the bit-field shall compare equal to the value stored. Still g() with the explicit cast must be considered broken. ---------------------------------------------------------------------- Comment By: Philipp Klaus Krause (spth) Date: 2010-07-18 12:43 Message: I use sdcc 2.9.7 #5879. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3031197&group_id=599 |