honggyu.kim added a comment. In https://reviews.llvm.org/D22666#513465, @compnerd wrote:
> No, the inserted character is a literal SOH, not the string "\01". I don't know why the string is passed in a different way but '\01' is shown in IR previously as below $ clang -target armv7-unknown-none-eabi -pg -meabi gnu -S -emit-llvm -o - test-mcount.c ... define i32 @f() #0 { call void @"\01__gnu_mcount_nc"() #1 ret i32 0 } ... But it doesn't show '\01' in IR with this modifiction. $ clang -target armv7-unknown-none-eabi -pg -meabi gnu -S -emit-llvm -o - test-mcount.c ... attributes #0 = { nounwind "counting-function"="__gnu_mcount_nc" ... } ... The expected result is as follows. '\01' is clearly shown in IR. $ clang -target armv7-unknown-none-eabi -pg -meabi gnu -S -emit-llvm -o - test-mcount.c ... attributes #0 = { nounwind "counting-function"="\01__gnu_mcount_nc" ... } ... Since I couldn't find why string passing is handled in a different way with previous version, I just put double backslash in "\\01__gnu_mcount_nc" because it generates the expected IR output. I know that we should have clear reason for this. Do you have any idea why this problem happens? https://reviews.llvm.org/D22666 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits