You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To eliminate warnings such as 'integer constant is too large,' it's necessary to generate specific type modifiers for constant integers in the expression.
I believe there are occasions when you might encounter an obfuscation issue, such as:
(100 * 1) / 1
64bit
Number of auxiliary variables: 2
Number of rewrite operations: 4
Depth of rewrite operations: 3
<source>:6:17: warning: integer constant is so large that it is unsigned
6 | return (18446744073709551516 * ~(aux0 & aux0 & (aux0 | aux1)) +
| ^~~~~~~~~~~~~~~~~~~~
<source>:7:17: warning: integer constant is so large that it is unsigned
7 | 18446744073709551516 * aux0) * (((aux0 & aux1 ^ aux1) &
| ^~~~~~~~~~~~~~~~~~~~
<source>:8:35: warning: integer constant is so large that it is unsigned
8 | ~(aux0 & aux0)) + 18446744073709551615 * ((aux1 ^ aux0) &
| ^~~~~~~~~~~~~~~~~~~~
<source>:9:54: warning: integer constant is so large that it is unsigned
9 | ~aux0 | aux1 ^ aux0 | aux1 | aux1) + 18446744073709551615 *
| ^~~~~~~~~~~~~~~~~~~~
<source>:10:26: warning: integer constant is so large that it is unsigned
10 | ~aux0) / 18446744073709551615 * ((~aux0 | aux0 | aux0) &
| ^~~~~~~~~~~~~~~~~~~~
ASM generation compiler returned: 0
<source>:6:17: warning: integer constant is so large that it is unsigned
6 | return (18446744073709551516 * ~(aux0 & aux0 & (aux0 | aux1)) +
| ^~~~~~~~~~~~~~~~~~~~
<source>:7:17: warning: integer constant is so large that it is unsigned
7 | 18446744073709551516 * aux0) * (((aux0 & aux1 ^ aux1) &
| ^~~~~~~~~~~~~~~~~~~~
<source>:8:35: warning: integer constant is so large that it is unsigned
8 | ~(aux0 & aux0)) + 18446744073709551615 * ((aux1 ^ aux0) &
| ^~~~~~~~~~~~~~~~~~~~
<source>:9:54: warning: integer constant is so large that it is unsigned
9 | ~aux0 | aux1 ^ aux0 | aux1 | aux1) + 18446744073709551615 *
| ^~~~~~~~~~~~~~~~~~~~
<source>:10:26: warning: integer constant is so large that it is unsigned
10 | ~aux0) / 18446744073709551615 * ((~aux0 | aux0 | aux0) &
| ^~~~~~~~~~~~~~~~~~~~
Execution build compiler returned: 0
Program returned: 0
Result is 18446744073709540917
Clang:
Output
<source>:6:10: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
6 | return (18446744073709551516 * ~(aux0 & aux0 & (aux0 | aux1)) +
| ^
<source>:7:3: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
7 | 18446744073709551516 * aux0) * (((aux0 & aux1 ^ aux1) &
| ^
<source>:8:21: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
8 | ~(aux0 & aux0)) + 18446744073709551615 * ((aux1 ^ aux0) &
| ^
<source>:9:40: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
9 | ~aux0 | aux1 ^ aux0 | aux1 | aux1) + 18446744073709551615 *
| ^
<source>:10:12: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
10 | ~aux0) / 18446744073709551615 * ((~aux0 | aux0 | aux0) &
| ^
5 warnings generated.
ASM generation compiler returned: 0
<source>:6:10: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
6 | return (18446744073709551516 * ~(aux0 & aux0 & (aux0 | aux1)) +
| ^
<source>:7:3: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
7 | 18446744073709551516 * aux0) * (((aux0 & aux1 ^ aux1) &
| ^
<source>:8:21: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
8 | ~(aux0 & aux0)) + 18446744073709551615 * ((aux1 ^ aux0) &
| ^
<source>:9:40: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
9 | ~aux0 | aux1 ^ aux0 | aux1 | aux1) + 18446744073709551615 *
| ^
<source>:10:12: warning: integer literal is too large to be represented in a signed integer type, interpreting as unsigned [-Wimplicitly-unsigned-literal]
10 | ~aux0) / 18446744073709551615 * ((~aux0 | aux0 | aux0) &
| ^
5 warnings generated.
Execution build compiler returned: 0
Program returned: 0
Result is 0
MSVC:
Output
example.cpp
ASM generation compiler returned: 0
example.cpp
Execution build compiler returned: 0
Program returned: 0
Result is 0
The text was updated successfully, but these errors were encountered:
Hey!
Thanks for the interesting project!
To eliminate warnings such as 'integer constant is too large,' it's necessary to generate specific type modifiers for constant integers in the expression.
I believe there are occasions when you might encounter an obfuscation issue, such as:
Generated code:
GCC:
Output
Clang:
Output
MSVC:
Output
The text was updated successfully, but these errors were encountered: