32 строки
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			32 строки
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
 | |
| # Comminute
 | |
| 
 | |
| The code here is intended to be some basics that help with learning
 | |
| the LLVM API. The points dealt with here are:
 | |
| 
 | |
| - Pass manager use
 | |
| - Pass dependency
 | |
| - Some basic IR instruction and value analysis
 | |
| - Use/User API 
 | |
| 
 | |
| It is not meant to be a some great bug hunting tool. It is meant
 | |
| to help get you to the point where you can start to think about 
 | |
| interprocedural and other analyses. Once you get the feel you
 | |
| should start to look at other code, like SVF, to get into things.
 | |
| You should look at building CFGs so you can evaluate globals
 | |
| better. You should look at some extended interprocedural SSA or
 | |
| perhaps using Andersen's Alias Analysis for analyzing pointers.
 | |
| There is a lot to doing good static analysis and that's where the
 | |
| meat of the research is!
 | |
| 
 | |
| I repeat... Just a learning tool.
 | |
| 
 | |
| ### Multiple potentially dangerous examples
 | |
| 
 | |
| The potent-danger examples are there to illustrate you can do the
 | |
| thing a few different ways. Essentially, depending on your 
 | |
| design needs and end goals, you may want to implement one
 | |
| methodology or another... 
 | |
| 
 | |
| 
 | 
