Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Michal Marek <mmarek@suse.cz>
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			990 B
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			990 B
			
		
	
	
	
		
			Text
		
	
	
	
	
	
/// sizeof when applied to a pointer typed expression gives the size of
 | 
						|
/// the pointer
 | 
						|
///
 | 
						|
// Confidence: High
 | 
						|
// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.  GPLv2.
 | 
						|
// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.  GPLv2.
 | 
						|
// URL: http://coccinelle.lip6.fr/
 | 
						|
// Comments:
 | 
						|
// Options: -no_includes -include_headers
 | 
						|
 | 
						|
virtual org
 | 
						|
virtual report
 | 
						|
virtual context
 | 
						|
virtual patch
 | 
						|
 | 
						|
@depends on patch@
 | 
						|
expression *x;
 | 
						|
expression f;
 | 
						|
type T;
 | 
						|
@@
 | 
						|
 | 
						|
(
 | 
						|
x = <+... sizeof(
 | 
						|
- x
 | 
						|
+ *x
 | 
						|
   ) ...+>
 | 
						|
|
 | 
						|
f(...,(T)(x),...,sizeof(
 | 
						|
- x
 | 
						|
+ *x
 | 
						|
   ),...)
 | 
						|
|
 | 
						|
f(...,sizeof(x),...,(T)(
 | 
						|
- x
 | 
						|
+ *x
 | 
						|
   ),...)
 | 
						|
)
 | 
						|
 | 
						|
@r depends on !patch@
 | 
						|
expression *x;
 | 
						|
expression f;
 | 
						|
position p;
 | 
						|
type T;
 | 
						|
@@
 | 
						|
 | 
						|
(
 | 
						|
*x = <+... sizeof@p(x) ...+>
 | 
						|
|
 | 
						|
*f(...,(T)(x),...,sizeof@p(x),...)
 | 
						|
|
 | 
						|
*f(...,sizeof@p(x),...,(T)(x),...)
 | 
						|
)
 | 
						|
 | 
						|
@script:python depends on org@
 | 
						|
p << r.p;
 | 
						|
@@
 | 
						|
 | 
						|
cocci.print_main("application of sizeof to pointer",p)
 | 
						|
 | 
						|
@script:python depends on report@
 | 
						|
p << r.p;
 | 
						|
@@
 | 
						|
 | 
						|
msg = "ERROR: application of sizeof to pointer"
 | 
						|
coccilib.report.print_report(p[0],msg)
 |