[LLVMdev] lit: deprecating trailing \ in RUN lines

Alp Toker alp at nuanti.com
Tue Dec 10 13:24:50 PST 2013


On 10/12/2013 19:47, Jim Grosbach wrote:
>
> On Dec 10, 2013, at 11:26 AM, Alp Toker <alp at nuanti.com 
> <mailto:alp at nuanti.com>> wrote:
>
>>
>> On 10/12/2013 18:03, Jim Grosbach wrote:
>>>> That causes dissonance between what the compiler sees and what 
>>>> lit.py sees for no particularly good reason. One of the nice 
>>>> properties of lit tests is that they're also valid compiler inputs, 
>>>> so trailing slash is a bit unfortunate.
>>>>
>>>
>>> How does the backslash break this in any way?
>>
>> The backslash is interpreted by lit and the compiler in different and 
>> incompatible ways.
>
> I disagree that this is different or incompatible.
>
> In any case, you didn’t answer the more important of my two questions. 
> What compilers interpret this code differently?

Hi Jim,

There are lots of ways line continuations are interpreted differently 
between compilers and even different versions from the same vendor.

This is inherent because each frontend has a different take on 
fundamental issues like where lines and comments begin and end, and even 
the semantics of what translation phases are vary between compilers.

Here's one quick example of how compilers interpret this code differently:

    |*$* printf '//\\ \nint x=0;\nint x=0;' > f.c|||
    ||||
    |||*$* cat f.c|||
    |||//\ |||
    |||int x=0;|||
    |||int x=0;|||
    ||||
    |||*$* clang -fsyntax-only f.c|||
    ||||
    |||*$* gcc-4.9 -fsyntax-only f.c|||
    ||||
    |||*$* cl f.c|||
    |||Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for
    x64|||
    |||Copyright (C) Microsoft Corporation.  All rights reserved.|||
    ||||
    ||*|f.c(3) : |**|error C2374|**|: 'x' : redefinition; multiple
    initialization|**||**
    **||**|        f.c(2) : see declaration of 'x'|*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131210/307378f3/attachment.html>


More information about the llvm-dev mailing list