Chromium Code Reviews| Index: tests_lit/llvm2ice_tests/mangle.ll |
| diff --git a/tests_lit/llvm2ice_tests/mangle.ll b/tests_lit/llvm2ice_tests/mangle.ll |
| index c76a23d1179a6bf960976949f7fb7e8d241f59dd..4271244a204d18ae05c88c6434b14f8f8e6855a7 100644 |
| --- a/tests_lit/llvm2ice_tests/mangle.ll |
| +++ b/tests_lit/llvm2ice_tests/mangle.ll |
| @@ -101,5 +101,28 @@ entry: |
| } |
| ; MANGLE: Subzero_Z-1FuncCPlusPlusi: |
| + |
| +; Test for substitution incrementing. This single test captures: |
| +; S<num>_ ==> S<num+1>_ for single-digit <num> |
| +; S_ ==> S0_ |
|
jvoung (off chromium)
2014/07/11 20:40:08
It's like "0" is the new "1", but I guess it's als
Jim Stichnoth
2014/07/11 21:05:12
Yeah, S_ is kind of like S<num>_ where num=-1.
|
| +; String length increase, e.g. SZZZ_ ==> S0000_ |
| +; At least one digit wrapping without length increase, e.g. SZ9ZZ_ ==> SZA00_ |
| +; Unrelated identifiers containing S[0-9A-Z]* , e.g. MyClassS1x |
| +; A proper substring of S<num>_ at the end of the string |
| +; (to test parser edge cases) |
| + |
| +define internal void @_Z3fooP10MyClassS1xP10MyClassS2xRS_RS1_S_S1_SZZZ_SZ9ZZ_S12345() { |
| +; MANGLE: _ZN7Subzero3fooEP10MyClassS1xP10MyClassS2xRS0_RS2_S0_S2_S0000_SZA00_S12345: |
| +entry: |
| + ret void |
| +} |
| + |
| +; Test that unmangled (non-C++) strings don't have substitutions updated. |
| +define internal void @foo_S_S0_SZ_S() { |
| +; MANGLE: Subzerofoo_S_S0_SZ_S: |
| +entry: |
| + ret void |
| +} |
| + |
| ; ERRORS-NOT: ICE translation error |
| ; DUMP-NOT: SZ |