Home | History | Annotate | Line # | Download | only in lint1
msg_171.c revision 1.4
      1  1.4  rillig /*	$NetBSD: msg_171.c,v 1.4 2021/03/22 15:29:43 rillig Exp $	*/
      2  1.1  rillig # 3 "msg_171.c"
      3  1.1  rillig 
      4  1.4  rillig // Test for message: cannot assign to '%s' from '%s' [171]
      5  1.1  rillig 
      6  1.2  rillig struct s {
      7  1.2  rillig 	int member;
      8  1.2  rillig };
      9  1.2  rillig 
     10  1.2  rillig /*ARGSUSED*/
     11  1.2  rillig void
     12  1.2  rillig example(int i, void *vp, struct s *s)
     13  1.2  rillig {
     14  1.2  rillig 	i = *s;			/* expect: 171 */
     15  1.2  rillig 	*s = i;			/* expect: 171 */
     16  1.2  rillig 
     17  1.2  rillig 	vp = *s;		/* expect: 171 */
     18  1.2  rillig 	*s = vp;		/* expect: 171 */
     19  1.2  rillig }
     20  1.3  rillig 
     21  1.3  rillig /*
     22  1.3  rillig  * C99 6.5.2.5 says that a compound literal evaluates to an unnamed object
     23  1.3  rillig  * with automatic storage duration, like any normal named object.  It is an
     24  1.3  rillig  * lvalue, which means that it is possible to take the address of the object.
     25  1.3  rillig  * Seen in external/mpl/bind/dist/lib/dns/rbtdb.c, update_rrsetstats.
     26  1.3  rillig  */
     27  1.3  rillig void
     28  1.3  rillig pointer_to_compound_literal(void)
     29  1.3  rillig {
     30  1.3  rillig 	struct point {
     31  1.3  rillig 		int x;
     32  1.3  rillig 		int y;
     33  1.3  rillig 	};
     34  1.3  rillig 	struct point *p = &(struct point){
     35  1.3  rillig 	    12, 5,
     36  1.3  rillig 	};			/* expect: 171 *//*FIXME*/
     37  1.3  rillig }
     38