mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Add sstore to linker tests to prevent the address from being optimized out
This commit is contained in:
		
							parent
							
								
									703a73f949
								
							
						
					
					
						commit
						9d08b5001f
					
				| @ -2,7 +2,7 @@ | ||||
| 	"language": "Yul", | ||||
| 	"sources": { | ||||
| 		"A": { | ||||
| 			"content": "object \"a\" { code { let addr := linkersymbol(\"contract/test.sol:L\") } }" | ||||
| 			"content": "object \"a\" { code { let addr := linkersymbol(\"contract/test.sol:L\") sstore(0, addr) } }" | ||||
| 		} | ||||
| 	}, | ||||
| 	"settings": { | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| 	"language": "Yul", | ||||
| 	"sources": { | ||||
| 		"A": { | ||||
| 			"content": "object \"a\" { code { let addr := linkersymbol(\"contract/test\\\".sol:L\") } }" | ||||
| 			"content": "object \"a\" { code { let addr := linkersymbol(\"contract/test\\\".sol:L\") sstore(0, addr) } }" | ||||
| 		} | ||||
| 	}, | ||||
| 	"settings": { | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
| 	"language": "Yul", | ||||
| 	"sources": { | ||||
| 		"A": { | ||||
| 			"content": "object \"a\" { code { let addr1 := linkersymbol(\"contract/test.sol:L1\") let addr2 := linkersymbol(\"contract/test.sol:L2\") } }" | ||||
| 			"content": "object \"a\" { code { let addr1 := linkersymbol(\"contract/test.sol:L1\") let addr2 := linkersymbol(\"contract/test.sol:L2\") sstore(0, addr1) sstore(1, addr2) } }" | ||||
| 		} | ||||
| 	}, | ||||
| 	"settings": { | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| object "a" { | ||||
|     code { | ||||
|         let addr := linkersymbol("contract/test.sol:L") | ||||
|         sstore(0, addr) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -5,14 +5,21 @@ Pretty printed source: | ||||
| object "a" { | ||||
|     code { | ||||
|         let addr := linkersymbol("contract/test.sol:L") | ||||
|         sstore(0, addr) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| Binary representation: | ||||
| 73123456789012345678901234567890123456789050 | ||||
| 7312345678901234567890123456789012345678908060005550 | ||||
| 
 | ||||
| Text representation: | ||||
|   linkerSymbol("f919ba91ac99f96129544b80b9516b27a80e376b9dc693819d0b18b7e0395612") | ||||
|     /* "linking_strict_assembly/input.yul":22:85   */ | ||||
|     /* "linking_strict_assembly/input.yul":98:102   */ | ||||
|   dup1 | ||||
|     /* "linking_strict_assembly/input.yul":95:96   */ | ||||
|   0x00 | ||||
|     /* "linking_strict_assembly/input.yul":88:103   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly/input.yul":22:109   */ | ||||
|   pop | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| object "a" { | ||||
|     code { | ||||
|         let addr := linkersymbol("library.sol:L") | ||||
|         sstore(0, addr) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| object "a" { | ||||
|     code { | ||||
|         let addr := linkersymbol("L") | ||||
|         sstore(0, addr) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -3,14 +3,23 @@ | ||||
| 
 | ||||
| Pretty printed source: | ||||
| object "a" { | ||||
|     code { let addr := linkersymbol("L") } | ||||
|     code { | ||||
|         let addr := linkersymbol("L") | ||||
|         sstore(0, addr) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| Binary representation: | ||||
| 73123456789012345678901234567890123456789050 | ||||
| 7312345678901234567890123456789012345678908060005550 | ||||
| 
 | ||||
| Text representation: | ||||
|   linkerSymbol("8aa64f937099b65a4febc243a5ae0f2d6416bb9e473c30dd29c1ee498fb7c5a8") | ||||
|     /* "linking_strict_assembly_no_file_name_in_link_reference/input.yul":22:67   */ | ||||
|     /* "linking_strict_assembly_no_file_name_in_link_reference/input.yul":80:84   */ | ||||
|   dup1 | ||||
|     /* "linking_strict_assembly_no_file_name_in_link_reference/input.yul":77:78   */ | ||||
|   0x00 | ||||
|     /* "linking_strict_assembly_no_file_name_in_link_reference/input.yul":70:85   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_no_file_name_in_link_reference/input.yul":22:91   */ | ||||
|   pop | ||||
|  | ||||
| @ -2,5 +2,7 @@ object "a" { | ||||
|     code { | ||||
|         let addr1 := linkersymbol("library1.sol:L") | ||||
|         let addr2 := linkersymbol("library2.sol:L") | ||||
|         sstore(0, addr1) | ||||
|         sstore(1, addr2) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -6,17 +6,31 @@ object "a" { | ||||
|     code { | ||||
|         let addr1 := linkersymbol("library1.sol:L") | ||||
|         let addr2 := linkersymbol("library2.sol:L") | ||||
|         sstore(0, addr1) | ||||
|         sstore(1, addr2) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| Binary representation: | ||||
| 7311111111111111111111111111111111111111117322222222222222222222222222222222222222225050 | ||||
| 73111111111111111111111111111111111111111173222222222222222222222222222222222222222281600055806001555050 | ||||
| 
 | ||||
| Text representation: | ||||
|   linkerSymbol("f3ffc10c396a7cc41ae954b050792839d20947bf73497d30c49a9fda1ea477ec") | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":32:75   */ | ||||
|   linkerSymbol("c3523432985587641d17c68161d2f700c57aaf4ed21cda4f25d76193c831f97f") | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":22:133   */ | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":146:151   */ | ||||
|   dup2 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":143:144   */ | ||||
|   0x00 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":136:152   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":171:176   */ | ||||
|   dup1 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":168:169   */ | ||||
|   0x01 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":161:177   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_same_library_name_different_files/input.yul":22:183   */ | ||||
|   pop | ||||
|   pop | ||||
|  | ||||
| @ -2,5 +2,7 @@ object "a" { | ||||
|     code { | ||||
|         let addr1 := linkersymbol("library1.sol:L") | ||||
|         let addr2 := linkersymbol("library2.sol:L") | ||||
|         sstore(0, addr1) | ||||
|         sstore(1, addr2) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -6,17 +6,31 @@ object "a" { | ||||
|     code { | ||||
|         let addr1 := linkersymbol("library1.sol:L") | ||||
|         let addr2 := linkersymbol("library2.sol:L") | ||||
|         sstore(0, addr1) | ||||
|         sstore(1, addr2) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| Binary representation: | ||||
| 73123456789012345678901234567890123456789073__$c3523432985587641d17c68161d2f700c5$__5050 | ||||
| 73123456789012345678901234567890123456789073__$c3523432985587641d17c68161d2f700c5$__81600055806001555050 | ||||
| 
 | ||||
| Text representation: | ||||
|   linkerSymbol("f3ffc10c396a7cc41ae954b050792839d20947bf73497d30c49a9fda1ea477ec") | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":32:75   */ | ||||
|   linkerSymbol("c3523432985587641d17c68161d2f700c57aaf4ed21cda4f25d76193c831f97f") | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":22:133   */ | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":146:151   */ | ||||
|   dup2 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":143:144   */ | ||||
|   0x00 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":136:152   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":171:176   */ | ||||
|   dup1 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":168:169   */ | ||||
|   0x01 | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":161:177   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_same_library_name_different_files_in_link_references/input.yul":22:183   */ | ||||
|   pop | ||||
|   pop | ||||
|  | ||||
| @ -2,5 +2,7 @@ object "a" { | ||||
|     code { | ||||
|         let addr1 := linkersymbol("contract/test.sol:L1") | ||||
|         let addr2 := linkersymbol("contract/test.sol:L2") | ||||
|         sstore(0, addr1) | ||||
|         sstore(1, addr2) | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -6,17 +6,31 @@ object "a" { | ||||
|     code { | ||||
|         let addr1 := linkersymbol("contract/test.sol:L1") | ||||
|         let addr2 := linkersymbol("contract/test.sol:L2") | ||||
|         sstore(0, addr1) | ||||
|         sstore(1, addr2) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| Binary representation: | ||||
| 73123456789012345678901234567890123456789073__$fb58009a6b1ecea3b9d99bedd645df4ec3$__5050 | ||||
| 73123456789012345678901234567890123456789073__$fb58009a6b1ecea3b9d99bedd645df4ec3$__81600055806001555050 | ||||
| 
 | ||||
| Text representation: | ||||
|   linkerSymbol("05b0326038374a21e0895480a58bda0768cdcc04c8d18f154362d1ca5223d245") | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":32:81   */ | ||||
|   linkerSymbol("fb58009a6b1ecea3b9d99bedd645df4ec308f17bc0087e5f39d078f77f809177") | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":22:145   */ | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":158:163   */ | ||||
|   dup2 | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":155:156   */ | ||||
|   0x00 | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":148:164   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":183:188   */ | ||||
|   dup1 | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":180:181   */ | ||||
|   0x01 | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":173:189   */ | ||||
|   sstore | ||||
|     /* "linking_strict_assembly_unresolved_references/input.yul":22:195   */ | ||||
|   pop | ||||
|   pop | ||||
|  | ||||
| @ -924,7 +924,7 @@ BOOST_AUTO_TEST_CASE(linking_yul) | ||||
| 		}, | ||||
| 		"sources": { | ||||
| 			"fileA": { | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"fileB:L\") } }" | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"fileB:L\") sstore(0, addr) } }" | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @ -956,7 +956,7 @@ BOOST_AUTO_TEST_CASE(linking_yul_empty_link_reference) | ||||
| 		}, | ||||
| 		"sources": { | ||||
| 			"fileA": { | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"\") } }" | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"\") sstore(0, addr) } }" | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @ -988,7 +988,7 @@ BOOST_AUTO_TEST_CASE(linking_yul_no_filename_in_link_reference) | ||||
| 		}, | ||||
| 		"sources": { | ||||
| 			"fileA": { | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"L\") } }" | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"L\") sstore(0, addr) } }" | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @ -1020,7 +1020,7 @@ BOOST_AUTO_TEST_CASE(linking_yul_same_library_name_different_files) | ||||
| 		}, | ||||
| 		"sources": { | ||||
| 			"fileA": { | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"fileC:L\") } }" | ||||
| 				"content": "object \"a\" { code { let addr := linkersymbol(\"fileC:L\") sstore(0, addr) } }" | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user