[PATCH] D22666: Frontend: Fix mcount inlining bug

Honggyu Kim via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 5 17:33:07 PDT 2016

honggyu.kim added a comment.

In https://reviews.llvm.org/D22666#506884, @compnerd wrote:

> The `\01` is to prevent the mangler from touching the function name.  If you noticed the check tags in the quoted test, some targets expect it to be decorated and others do not.  What exactly do you mean that `lit` has a strings matching with `\01`?  Its not a string `\01`, its the octal character 1.

Thanks for the explanation.  I mean the following statement is not properly matched by llvm-lit even if frontend generate mcount name as "\01__gnu_mcount_nc".

  // CHECK-ARM-EABI-MEABI-GNU: attributes #{{[0-9]+}} = { {{.*}}"counting-function"="\01__gnu_mcount_nc"{{.*}} }

If I remove '\01' prefix in frontend then generate just "__gnu_mcount_nc", the  following statement that also doesn't have '\01' prefix is matched without problem.

  // CHECK-ARM-EABI-MEABI-GNU: attributes #{{[0-9]+}} = { {{.*}}"counting-function"="__gnu_mcount_nc"{{.*}} }

Do you have any idea why this problem happens?


More information about the cfe-commits mailing list