Test failure on windows.

Reid Kleckner rnk at google.com
Thu Jun 20 09:33:49 PDT 2013


Should be fixed in r184438.  The root cause is that f is passed as byval +
indirect, meaning LLVM represents it as a pointer, but under the hood it's
copied into the argument stack slots used for the call.  This is obviously
totally broken because foo has a copy ctor, but that's the current state of
things.

This test isn't opting into the Microsoft C++ ABI, so I don't understand
why clang is passing the object this way.  That's probably it's worth a bug.


On Thu, Jun 20, 2013 at 11:56 AM, jahanian <fjahanian at apple.com> wrote:

> Probably because of this.
>
> r184367 | dblaikie | 2013-06-19 14:53:53 -0700 (Wed, 19 Jun 2013) | 5 lines
>
> Debug Info: PR14763/r183329 - specify that non-trivial pass-by-value
> parameters are stored indirectly
>
> This is to fix the location information for such parameters to refer to
> the object accessible through the pointer rather than to the pointer
> parameter itself.
>
>
>
> On Jun 20, 2013, at 8:38 AM, jahanian <fjahanian at apple.com> wrote:
>
> Hi All,
> Following test has been failing on windows since yesterday:
>
> Clang :: CodeGenCXX/debug-info.cpp
>
>
> C:\src\tools\clang\test\CodeGenCXX\debug-info.cpp:95:11: error: expected string not found in input
>   // CHECK: = metadata !{i32 {{[0-9]*}}, metadata [[FUNC]], {{.*}}, metadata [[FOO]], i32 8192, i32 0} ; [ DW_TAG_arg_variable ] [f]
>             ^
>   <stdin>:357:222: note: scanning from here
>   !133 = metadata !{i32 786451, metadata !5, metadata !130, metadata !"incomplete", i32 86, i64 0, i64 0, i32 0, i32 4, null, null, i32 0} ; [ DW_TAG_structure_type ] [incomplete] [line 86, size 0, align 0, offset 0] [fwd] [from ]
>                                                                                                                                                                                                                                ^
>   <stdin>:357:222: note: with variable "FUNC" equal to "!61"
>   !133 = metadata !{i32 786451, metadata !5, metadata !130, metadata !"incomplete", i32 86, i64 0, i64 0, i32 0, i32 4, null, null, i32 0} ; [ DW_TAG_structure_type ] [incomplete] [line 86, size 0, align 0, offset 0] [fwd] [from ]
>                                                                                                                                                                                                                                ^
>   <stdin>:357:222: note: with variable "FOO" equal to "!65"
>   !133 = metadata !{i32 786451, metadata !5, metadata !130, metadata !"incomplete", i32 86, i64 0, i64 0, i32 0, i32 4, null, null, i32 0} ; [ DW_TAG_structure_type ] [incomplete] [line 86, size 0, align 0, offset 0] [fwd] [from ]
>                                                                                                                                                                                                                                ^
>   <stdin>:361:38: note: possible intended match here
>   !137 = metadata !{i32 786689, metadata !4, metadata !"a", metadata !6, i32 16777222, metadata !9, i32 0, i32 0} ; [ DW_TAG_arg_variable ] [a] [line 6]
>
> - Fariborz
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130620/533f299c/attachment.html>


More information about the cfe-commits mailing list