r235941 - [modules] Incrementally compute the list of overridden module macros based on

Aaron Ballman aaron at aaronballman.com
Wed Apr 29 05:30:34 PDT 2015


I can confirm the behavior Richard is seeing with MSVC 2013, and I've
reported it as a bug through Connect
(https://connect.microsoft.com/VisualStudio/feedback/details/1288393)

~Aaron

On Wed, Apr 29, 2015 at 5:52 AM, Gabriel Dos Reis
<gdr at integrable-solutions.net> wrote:
> Let them know about it.
>
> -- Gaby
>
> On Tue, Apr 28, 2015 at 2:17 PM, Richard Smith <richard at metafoo.co.uk>
> wrote:
>>
>> Looks likely to be an MSVC miscompile, hopefully r236034 should fix it.
>>
>> [The bug is, given:
>>
>>   struct A { A(); };
>>   struct B { void *p; A a; };
>>
>> MSVC appears not to zero-initialize B::p in the expression B().]
>>
>> On Tue, Apr 28, 2015 at 7:33 AM, Aaron Ballman <aaron at aaronballman.com>
>> wrote:
>>>
>>> Btw, to be clear, I am on r235990, so I also have your memory leak fix.
>>>
>>> ~Aaron
>>>
>>> On Tue, Apr 28, 2015 at 10:32 AM, Aaron Ballman <aaron at aaronballman.com>
>>> wrote:
>>> > This commit still has some problems. On Windows with MSVC 2013 debug
>>> > build, I am getting failures like:
>>> >
>>> >>lit E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp
>>> > -- Testing: 1 tests, 1 threads --
>>> > FAIL: Clang :: Modules/macro-hiding.cpp (1 of 1)
>>> > ******************** TEST 'Clang :: Modules/macro-hiding.cpp' FAILED
>>> > ********************
>>> > Script:
>>> > --
>>> > rm -rf
>>> > E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB2 -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DB2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DB2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DB1 -DB2 -DC1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB2 -DC1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DC1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DB2
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DB2
>>> > -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA2 -DB1 -DB2
>>> > -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB2 -DC1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DC1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DB2
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DB2
>>> > -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DB1 -DB2
>>> > -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DC1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB2
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB2
>>> > -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB2
>>> > -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DB2
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DB2 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DB2 -DC1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DA1 -DA2 -DB1
>>> > -DB2 -DC1 -DD1
>>> > E:/llvm/2013/Debug/bin/clang.EXE -cc1 -internal-isystem
>>> > E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include -nostdsysteminc
>>> > -fmodules
>>> > -fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp
>>> > -IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding
>>> > E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp -DE1
>>> > --
>>> > Exit Code: -1073741819
>>> >
>>> > Command Output (stdout):
>>> > --
>>> > Command 0: "rm" "-rf"
>>> > "E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > Command 0 Result: 0
>>> > Command 0 Output:
>>> >
>>> >
>>> > Command 0 Stderr:
>>> >
>>> >
>>> > Command 1: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DD1"
>>> > Command 1 Result: 0
>>> > Command 1 Output:
>>> >
>>> >
>>> > Command 1 Stderr:
>>> >
>>> >
>>> > Command 2: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DC1"
>>> > Command 2 Result: 0
>>> > Command 2 Output:
>>> >
>>> >
>>> > Command 2 Stderr:
>>> >
>>> >
>>> > Command 3: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DC1" "-DD1"
>>> > Command 3 Result: 0
>>> > Command 3 Output:
>>> >
>>> >
>>> > Command 3 Stderr:
>>> >
>>> >
>>> > Command 4: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB2"
>>> > Command 4 Result: 0
>>> > Command 4 Output:
>>> >
>>> >
>>> > Command 4 Stderr:
>>> >
>>> >
>>> > Command 5: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB2" "-DD1"
>>> > Command 5 Result: 0
>>> > Command 5 Output:
>>> >
>>> >
>>> > Command 5 Stderr:
>>> >
>>> >
>>> > Command 6: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB2" "-DC1"
>>> > Command 6 Result: 0
>>> > Command 6 Output:
>>> >
>>> >
>>> > Command 6 Stderr:
>>> >
>>> >
>>> > Command 7: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB2" "-DC1"
>>> > "-DD1"
>>> > Command 7 Result: 0
>>> > Command 7 Output:
>>> >
>>> >
>>> > Command 7 Stderr:
>>> >
>>> >
>>> > Command 8: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1"
>>> > Command 8 Result: 0
>>> > Command 8 Output:
>>> >
>>> >
>>> > Command 8 Stderr:
>>> >
>>> >
>>> > Command 9: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DD1"
>>> > Command 9 Result: 0
>>> > Command 9 Output:
>>> >
>>> >
>>> > Command 9 Stderr:
>>> >
>>> >
>>> > Command 10: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DC1"
>>> > Command 10 Result: 0
>>> > Command 10 Output:
>>> >
>>> >
>>> > Command 10 Stderr:
>>> >
>>> >
>>> > Command 11: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DC1"
>>> > "-DD1"
>>> > Command 11 Result: 0
>>> > Command 11 Output:
>>> >
>>> >
>>> > Command 11 Stderr:
>>> >
>>> >
>>> > Command 12: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DB2"
>>> > Command 12 Result: 0
>>> > Command 12 Output:
>>> >
>>> >
>>> > Command 12 Stderr:
>>> >
>>> >
>>> > Command 13: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DB2"
>>> > "-DD1"
>>> > Command 13 Result: 0
>>> > Command 13 Output:
>>> >
>>> >
>>> > Command 13 Stderr:
>>> >
>>> >
>>> > Command 14: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DB2"
>>> > "-DC1"
>>> > Command 14 Result: 0
>>> > Command 14 Output:
>>> >
>>> >
>>> > Command 14 Stderr:
>>> >
>>> >
>>> > Command 15: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DB1" "-DB2"
>>> > "-DC1" "-DD1"
>>> > Command 15 Result: 0
>>> > Command 15 Output:
>>> >
>>> >
>>> > Command 15 Stderr:
>>> >
>>> >
>>> > Command 16: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2"
>>> > Command 16 Result: 0
>>> > Command 16 Output:
>>> >
>>> >
>>> > Command 16 Stderr:
>>> >
>>> >
>>> > Command 17: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DD1"
>>> > Command 17 Result: 0
>>> > Command 17 Output:
>>> >
>>> >
>>> > Command 17 Stderr:
>>> >
>>> >
>>> > Command 18: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DC1"
>>> > Command 18 Result: 0
>>> > Command 18 Output:
>>> >
>>> >
>>> > Command 18 Stderr:
>>> >
>>> >
>>> > Command 19: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DC1"
>>> > "-DD1"
>>> > Command 19 Result: 0
>>> > Command 19 Output:
>>> >
>>> >
>>> > Command 19 Stderr:
>>> >
>>> >
>>> > Command 20: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB2"
>>> > Command 20 Result: 0
>>> > Command 20 Output:
>>> >
>>> >
>>> > Command 20 Stderr:
>>> >
>>> >
>>> > Command 21: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB2"
>>> > "-DD1"
>>> > Command 21 Result: 0
>>> > Command 21 Output:
>>> >
>>> >
>>> > Command 21 Stderr:
>>> >
>>> >
>>> > Command 22: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB2"
>>> > "-DC1"
>>> > Command 22 Result: 0
>>> > Command 22 Output:
>>> >
>>> >
>>> > Command 22 Stderr:
>>> >
>>> >
>>> > Command 23: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB2"
>>> > "-DC1" "-DD1"
>>> > Command 23 Result: 0
>>> > Command 23 Output:
>>> >
>>> >
>>> > Command 23 Stderr:
>>> >
>>> >
>>> > Command 24: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > Command 24 Result: 0
>>> > Command 24 Output:
>>> >
>>> >
>>> > Command 24 Stderr:
>>> >
>>> >
>>> > Command 25: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DD1"
>>> > Command 25 Result: 0
>>> > Command 25 Output:
>>> >
>>> >
>>> > Command 25 Stderr:
>>> >
>>> >
>>> > Command 26: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DC1"
>>> > Command 26 Result: 0
>>> > Command 26 Output:
>>> >
>>> >
>>> > Command 26 Stderr:
>>> >
>>> >
>>> > Command 27: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DC1" "-DD1"
>>> > Command 27 Result: 0
>>> > Command 27 Output:
>>> >
>>> >
>>> > Command 27 Stderr:
>>> >
>>> >
>>> > Command 28: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DB2"
>>> > Command 28 Result: 0
>>> > Command 28 Output:
>>> >
>>> >
>>> > Command 28 Stderr:
>>> >
>>> >
>>> > Command 29: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DB2" "-DD1"
>>> > Command 29 Result: 0
>>> > Command 29 Output:
>>> >
>>> >
>>> > Command 29 Stderr:
>>> >
>>> >
>>> > Command 30: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DB2" "-DC1"
>>> > Command 30 Result: 0
>>> > Command 30 Output:
>>> >
>>> >
>>> > Command 30 Stderr:
>>> >
>>> >
>>> > Command 31: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA2" "-DB1"
>>> > "-DB2" "-DC1" "-DD1"
>>> > Command 31 Result: 0
>>> > Command 31 Output:
>>> >
>>> >
>>> > Command 31 Stderr:
>>> >
>>> >
>>> > Command 32: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1"
>>> > Command 32 Result: 0
>>> > Command 32 Output:
>>> >
>>> >
>>> > Command 32 Stderr:
>>> >
>>> >
>>> > Command 33: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DD1"
>>> > Command 33 Result: 0
>>> > Command 33 Output:
>>> >
>>> >
>>> > Command 33 Stderr:
>>> >
>>> >
>>> > Command 34: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DC1"
>>> > Command 34 Result: 0
>>> > Command 34 Output:
>>> >
>>> >
>>> > Command 34 Stderr:
>>> >
>>> >
>>> > Command 35: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DC1"
>>> > "-DD1"
>>> > Command 35 Result: 0
>>> > Command 35 Output:
>>> >
>>> >
>>> > Command 35 Stderr:
>>> >
>>> >
>>> > Command 36: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB2"
>>> > Command 36 Result: 0
>>> > Command 36 Output:
>>> >
>>> >
>>> > Command 36 Stderr:
>>> >
>>> >
>>> > Command 37: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB2"
>>> > "-DD1"
>>> > Command 37 Result: 0
>>> > Command 37 Output:
>>> >
>>> >
>>> > Command 37 Stderr:
>>> >
>>> >
>>> > Command 38: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB2"
>>> > "-DC1"
>>> > Command 38 Result: 0
>>> > Command 38 Output:
>>> >
>>> >
>>> > Command 38 Stderr:
>>> >
>>> >
>>> > Command 39: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB2"
>>> > "-DC1" "-DD1"
>>> > Command 39 Result: 0
>>> > Command 39 Output:
>>> >
>>> >
>>> > Command 39 Stderr:
>>> >
>>> >
>>> > Command 40: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > Command 40 Result: 0
>>> > Command 40 Output:
>>> >
>>> >
>>> > Command 40 Stderr:
>>> >
>>> >
>>> > Command 41: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DD1"
>>> > Command 41 Result: 0
>>> > Command 41 Output:
>>> >
>>> >
>>> > Command 41 Stderr:
>>> >
>>> >
>>> > Command 42: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DC1"
>>> > Command 42 Result: 0
>>> > Command 42 Output:
>>> >
>>> >
>>> > Command 42 Stderr:
>>> >
>>> >
>>> > Command 43: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DC1" "-DD1"
>>> > Command 43 Result: 0
>>> > Command 43 Output:
>>> >
>>> >
>>> > Command 43 Stderr:
>>> >
>>> >
>>> > Command 44: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DB2"
>>> > Command 44 Result: 0
>>> > Command 44 Output:
>>> >
>>> >
>>> > Command 44 Stderr:
>>> >
>>> >
>>> > Command 45: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DB2" "-DD1"
>>> > Command 45 Result: 0
>>> > Command 45 Output:
>>> >
>>> >
>>> > Command 45 Stderr:
>>> >
>>> >
>>> > Command 46: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DB2" "-DC1"
>>> > Command 46 Result: 0
>>> > Command 46 Output:
>>> >
>>> >
>>> > Command 46 Stderr:
>>> >
>>> >
>>> > Command 47: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DB1"
>>> > "-DB2" "-DC1" "-DD1"
>>> > Command 47 Result: 0
>>> > Command 47 Output:
>>> >
>>> >
>>> > Command 47 Stderr:
>>> >
>>> >
>>> > Command 48: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > Command 48 Result: 0
>>> > Command 48 Output:
>>> >
>>> >
>>> > Command 48 Stderr:
>>> >
>>> >
>>> > Command 49: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DD1"
>>> > Command 49 Result: 0
>>> > Command 49 Output:
>>> >
>>> >
>>> > Command 49 Stderr:
>>> >
>>> >
>>> > Command 50: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DC1"
>>> > Command 50 Result: 0
>>> > Command 50 Output:
>>> >
>>> >
>>> > Command 50 Stderr:
>>> >
>>> >
>>> > Command 51: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DC1" "-DD1"
>>> > Command 51 Result: 0
>>> > Command 51 Output:
>>> >
>>> >
>>> > Command 51 Stderr:
>>> >
>>> >
>>> > Command 52: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB2"
>>> > Command 52 Result: 0
>>> > Command 52 Output:
>>> >
>>> >
>>> > Command 52 Stderr:
>>> >
>>> >
>>> > Command 53: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB2" "-DD1"
>>> > Command 53 Result: 0
>>> > Command 53 Output:
>>> >
>>> >
>>> > Command 53 Stderr:
>>> >
>>> >
>>> > Command 54: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB2" "-DC1"
>>> > Command 54 Result: 0
>>> > Command 54 Output:
>>> >
>>> >
>>> > Command 54 Stderr:
>>> >
>>> >
>>> > Command 55: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB2" "-DC1" "-DD1"
>>> > Command 55 Result: 0
>>> > Command 55 Output:
>>> >
>>> >
>>> > Command 55 Stderr:
>>> >
>>> >
>>> > Command 56: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1"
>>> > Command 56 Result: 0
>>> > Command 56 Output:
>>> >
>>> >
>>> > Command 56 Stderr:
>>> >
>>> >
>>> > Command 57: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DD1"
>>> > Command 57 Result: 0
>>> > Command 57 Output:
>>> >
>>> >
>>> > Command 57 Stderr:
>>> >
>>> >
>>> > Command 58: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DC1"
>>> > Command 58 Result: 0
>>> > Command 58 Output:
>>> >
>>> >
>>> > Command 58 Stderr:
>>> >
>>> >
>>> > Command 59: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DC1" "-DD1"
>>> > Command 59 Result: 0
>>> > Command 59 Output:
>>> >
>>> >
>>> > Command 59 Stderr:
>>> >
>>> >
>>> > Command 60: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DB2"
>>> > Command 60 Result: 0
>>> > Command 60 Output:
>>> >
>>> >
>>> > Command 60 Stderr:
>>> >
>>> >
>>> > Command 61: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DB2" "-DD1"
>>> > Command 61 Result: 0
>>> > Command 61 Output:
>>> >
>>> >
>>> > Command 61 Stderr:
>>> >
>>> >
>>> > Command 62: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DB2" "-DC1"
>>> > Command 62 Result: 0
>>> > Command 62 Output:
>>> >
>>> >
>>> > Command 62 Stderr:
>>> >
>>> >
>>> > Command 63: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DA1" "-DA2"
>>> > "-DB1" "-DB2" "-DC1" "-DD1"
>>> > Command 63 Result: 0
>>> > Command 63 Output:
>>> >
>>> >
>>> > Command 63 Stderr:
>>> >
>>> >
>>> > Command 64: "E:/llvm/2013/Debug/bin/clang.EXE" "-cc1"
>>> > "-internal-isystem"
>>> > "E:\llvm\2013\Debug\bin\..\lib\clang\3.7.0\include" "-nostdsysteminc"
>>> > "-fmodules"
>>> > "-fmodules-cache-path=E:\llvm\2013\tools\clang\test\Modules\Output\macro-hiding.cpp.tmp"
>>> > "-IE:\llvm\llvm\tools\clang\test\Modules/Inputs/macro-hiding"
>>> > "E:\llvm\llvm\tools\clang\test\Modules\macro-hiding.cpp" "-DE1"
>>> > Command 64 Result: -1073741819
>>> > Command 64 Output:
>>> >
>>> >
>>> > Command 64 Stderr:
>>> > 0x02A746D1 (0x0900E37C 0x0900E6FC 0x00000000 0x00000000),
>>> > clang::MacroDirective::getLocation() + 0x11 bytes(s),
>>> > e:\llvm\llvm\tools\clang\include\clang\lex\macroinfo.h, line 373 +
>>> > 0x11 byte(s)
>>> >
>>> > 0x04775A88 (0x0900E784 0x0900E8B0 0xCCCCCCCC 0x00000001),
>>> > clang::Preprocessor::LeaveSubmodule() + 0xE8 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\lex\pplexerchange.cpp, line 642 + 0xF
>>> > byte(s)
>>> >
>>> > 0x04774DE2 (0x085358D0 0x00000000 0x0900E858 0xCCCCCCCC),
>>> > clang::Preprocessor::HandleEndOfFile() + 0x6E2 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\lex\pplexerchange.cpp, line 409
>>> >
>>> > 0x0473170C (0x085358D0 0x00ED936B 0x0900EBAC 0x0900E8B0),
>>> > clang::Lexer::LexEndOfFile() + 0x22C bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\lex\lexer.cpp, line 2537
>>> >
>>> > 0x0472DABF (0x085358D0 0x00000001 0x0900E8B0 0x0000CCCC),
>>> > clang::Lexer::LexTokenInternal() + 0x11F bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\lex\lexer.cpp, line 2937 + 0x13 byte(s)
>>> >
>>> > 0x0472B028 (0x085358D0 0x00000000 0xCC00CCCC 0x00F7FFA8),
>>> > clang::Lexer::Lex() + 0xB8 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\lex\lexer.cpp, line 2888 + 0x11 byte(s)
>>> >
>>> > 0x04736A8B (0x085358D0 0x0900E8B0 0x000028BB 0x085358C8),
>>> > clang::Preprocessor::Lex() + 0x5B bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\lex\preprocessor.cpp, line 696 + 0x19
>>> > byte(s)
>>> >
>>> > 0x0382C8CE (0x0900E8B4 0x0900F908 0xCCCCCCCC 0x0900EB44),
>>> > clang::Parser::ConsumeBrace() + 0xBE bytes(s),
>>> > e:\llvm\llvm\tools\clang\include\clang\parse\parser.h, line 402
>>> >
>>> > 0x0382E279 (0x0900EC18 0xCCCCCCCC 0xCCCCCCCC 0xCCCCCCCC),
>>> > clang::BalancedDelimiterTracker::consumeClose() + 0x49 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\raiiobjectsforparser.h, line 424 +
>>> > 0x14 byte(s)
>>> >
>>> > 0x03888E6D (0x0900EBE0 0x00000000 0x0900EDE8 0x0900F908),
>>> > clang::Parser::ParseCompoundStatementBody() + 0x51D bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parsestmt.cpp, line 1006 + 0x8
>>> > byte(s)
>>> >
>>> > 0x0388D11F (0x00F5C410 0x0900ECD4 0x0900F528 0x0900F908),
>>> > clang::Parser::ParseFunctionStatementBody() + 0xDF bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parsestmt.cpp, line 1876
>>> >
>>> > 0x038280D7 (0x0900F098 0x0900EE84 0x0900F078 0x0900F5A8),
>>> > clang::Parser::ParseFunctionDefinition() + 0x9A7 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parser.cpp, line 1104 + 0x16
>>> > byte(s)
>>> >
>>> > 0x03845A6B (0x0900F8AC 0x0900F5E0 0x00000000 0x00000000),
>>> > clang::Parser::ParseDeclGroup() + 0x3FB bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parsedecl.cpp, line 1729 + 0x22
>>> > byte(s)
>>> >
>>> > 0x038276C5 (0x0900F8AC 0x0900F8D4 0x0900F5E0 0x00000003),
>>> > clang::Parser::ParseDeclOrFunctionDefInternal() + 0x2D5 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parser.cpp, line 893 + 0x16 byte(s)
>>> >
>>> > 0x03827379 (0x0900F8AC 0x0900F8D4 0x00000000 0x00000003),
>>> > clang::Parser::ParseDeclarationOrFunctionDefinition() + 0x89 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parser.cpp, line 909 + 0x1B byte(s)
>>> >
>>> > 0x03826DBC (0x0900F8AC 0x0900F8D4 0x00000000 0x0900F98C),
>>> > clang::Parser::ParseExternalDeclaration() + 0x90C bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parser.cpp, line 767 + 0x16 byte(s)
>>> >
>>> > 0x03823905 (0x0900F944 0x0900FA34 0x0900F99C 0x085358C8),
>>> > clang::Parser::ParseTopLevelDecl() + 0x205 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parser.cpp, line 569 + 0x12 byte(s)
>>> >
>>> > 0x03821BD8 (0x08502358 0x00000000 0x00000000 0x0900F9B8),
>>> > clang::ParseAST() + 0x1B8 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\parse\parseast.cpp, line 144 + 0xC
>>> > byte(s)
>>> >
>>> > 0x02AA3011 (0x0900F9E0 0xCCCCCCCC 0xCCCCCCCC 0xCCCCCCCC),
>>> > clang::ASTFrontendAction::ExecuteAction() + 0x101 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\frontend\frontendaction.cpp, line 538 +
>>> > 0x30 byte(s)
>>> >
>>> > 0x02AA2BFE (0x00000000 0x0900FA58 0xCCCCCCCC 0xCCCCCCCC),
>>> > clang::FrontendAction::Execute() + 0x7E bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\frontend\frontendaction.cpp, line 439 +
>>> > 0xF byte(s)
>>> >
>>> > 0x02A5D561 (0x00BEC750 0x00BEC690 0x0900FA4C 0x02A6771B),
>>> > clang::CompilerInstance::ExecuteAction() + 0x2A1 bytes(s),
>>> > e:\llvm\llvm\tools\clang\lib\frontend\compilerinstance.cpp, line 815
>>> >
>>> > 0x02A634DF (0x0900FA60 0x0487E47F 0x00BEC690 0x0900FA9C),
>>> > <lambda_79bb565d560a4752dfd21c67f7bf3bfd>::operator()() + 0x1F
>>> > bytes(s), e:\llvm\llvm\tools\clang\lib\frontend\compilerinstance.cpp,
>>> > line 978 + 0x1F byte(s)
>>> >
>>> > 0x02A6771B (0x00BEC690 0x0900FA9C 0x0900FA84 0x0900FA7C),
>>> > llvm::function_ref<void
>>> > __cdecl(void)>::callback_fn<<lambda_79bb565d560a4752dfd21c67f7bf3bfd>
>>> >>() + 0xB bytes(s), e:\llvm\llvm\include\llvm\adt\stlextras.h, line 76
>>> >
>>> > 0x0487E47F (0x0900FA9C 0xCCCCCCCC 0xCCCCCCCC 0xCCCCCCCC),
>>> > llvm::function_ref<void __cdecl(void)>::operator()() + 0x1F bytes(s),
>>> > e:\llvm\llvm\include\llvm\adt\stlextras.h, line 87 + 0x10 byte(s)
>>> >
>>> > 0x0487DE36 (0x02A67710 0x00BEC690 0x00BEC62C 0x0900FAA4),
>>> > llvm::CrashRecoveryContext::RunSafely() + 0xB6 bytes(s),
>>> > e:\llvm\llvm\lib\support\crashrecoverycontext.cpp, line 317
>>> >
>>> > 0x0487E0E6 (0x00BEC62C 0x00000000 0x00BEC604 0x0900FAE0),
>>> > RunSafelyOnThread_Dispatch() + 0x36 bytes(s),
>>> > e:\llvm\llvm\lib\support\crashrecoverycontext.cpp, line 364 + 0x15
>>> > byte(s)
>>> >
>>> > 0x028324F2 (0x00BEC604 0x2C68CD18 0x00000000 0x00000000),
>>> > ThreadCallback() + 0x22 bytes(s),
>>> > e:\llvm\llvm\lib\support\threading.cpp, line 81 + 0x10 byte(s)
>>> >
>>> > 0x01013651 (0x00F7DEC8 0x0900FAF8 0x778D336A 0x00F7DEC8),
>>> > _beginthreadex() + 0x1A1 bytes(s)
>>> >
>>> > 0x01013861 (0x00F7DEC8 0x0900FB38 0x77E992B2 0x00F7DAE0),
>>> > _endthreadex() + 0x181 bytes(s)
>>> >
>>> > 0x778D336A (0x00F7DAE0 0x5DF45C7C 0x00000000 0x00000000),
>>> > BaseThreadInitThunk() + 0x12 bytes(s)
>>> >
>>> > 0x77E992B2 (0x010137B0 0x00F7DAE0 0x00000000 0x00000000),
>>> > RtlInitializeExceptionChain() + 0x63 bytes(s)
>>> >
>>> > 0x77E99285 (0x010137B0 0x00F7DAE0 0x00000000 0x00000000),
>>> > RtlInitializeExceptionChain() + 0x36 bytes(s)
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> >
>>> > ********************
>>> > Testing Time: 42.97s
>>> > ********************
>>> > Failing Tests (1):
>>> >     Clang :: Modules/macro-hiding.cpp
>>> >
>>> >   Unexpected Failures: 1
>>> >
>>> > There are other tests failing from this as well with identical call
>>> > stacks.
>>> >
>>> > ~Aaron
>>> >
>>> > On Mon, Apr 27, 2015 at 10:59 PM, Richard Smith <richard at metafoo.co.uk>
>>> > wrote:
>>> >> Thanks, fixed.
>>> >>
>>> >> On Mon, Apr 27, 2015 at 5:23 PM, Alexey Samsonov <vonosmas at gmail.com>
>>> >> wrote:
>>> >>>
>>> >>> Hi Richard,
>>> >>>
>>> >>> Looks like this broke down ASan bootstrap:
>>> >>>
>>> >>> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/3434/steps/check-clang%20asan/logs/stdio
>>> >>>
>>> >>> On Mon, Apr 27, 2015 at 4:21 PM, Richard Smith
>>> >>> <richard-llvm at metafoo.co.uk> wrote:
>>> >>>>
>>> >>>> Author: rsmith
>>> >>>> Date: Mon Apr 27 18:21:38 2015
>>> >>>> New Revision: 235941
>>> >>>>
>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=235941&view=rev
>>> >>>> Log:
>>> >>>> [modules] Incrementally compute the list of overridden module macros
>>> >>>> based on
>>> >>>> the active module macros at the point of definition, rather than
>>> >>>> reconstructing
>>> >>>> it from the macro history. No functionality change intended.
>>> >>>>
>>> >>>> Modified:
>>> >>>>     cfe/trunk/include/clang/Lex/Preprocessor.h
>>> >>>>     cfe/trunk/lib/Lex/PPDirectives.cpp
>>> >>>>     cfe/trunk/lib/Lex/PPLexerChange.cpp
>>> >>>>     cfe/trunk/lib/Lex/PPMacroExpansion.cpp
>>> >>>>     cfe/trunk/lib/Lex/Preprocessor.cpp
>>> >>>>
>>> >>>> Modified: cfe/trunk/include/clang/Lex/Preprocessor.h
>>> >>>> URL:
>>> >>>>
>>> >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Lex/Preprocessor.h?rev=235941&r1=235940&r2=235941&view=diff
>>> >>>>
>>> >>>>
>>> >>>> ==============================================================================
>>> >>>> --- cfe/trunk/include/clang/Lex/Preprocessor.h (original)
>>> >>>> +++ cfe/trunk/include/clang/Lex/Preprocessor.h Mon Apr 27 18:21:38
>>> >>>> 2015
>>> >>>> @@ -364,57 +364,104 @@ class Preprocessor : public RefCountedBa
>>> >>>>    };
>>> >>>>    SmallVector<MacroExpandsInfo, 2> DelayedMacroExpandsCallbacks;
>>> >>>>
>>> >>>> +  /// Information about a name that has been used to define a
>>> >>>> module
>>> >>>> macro.
>>> >>>> +  struct ModuleMacroInfo {
>>> >>>> +    ModuleMacroInfo(MacroDirective *MD)
>>> >>>> +        : MD(MD), ActiveModuleMacrosGeneration(0) {}
>>> >>>> +
>>> >>>> +    /// The most recent macro directive for this identifier.
>>> >>>> +    MacroDirective *MD;
>>> >>>> +    /// The active module macros for this identifier.
>>> >>>> +    llvm::TinyPtrVector<ModuleMacro*> ActiveModuleMacros;
>>> >>>> +    /// The generation number at which we last updated
>>> >>>> ActiveModuleMacros.
>>> >>>> +    /// \see Preprocessor::MacroVisibilityGeneration.
>>> >>>> +    unsigned ActiveModuleMacrosGeneration;
>>> >>>> +    /// Whether this macro name is ambiguous.
>>> >>>> +    bool IsAmbiguous;
>>> >>>> +    /// The module macros that are overridden by this macro.
>>> >>>> +    llvm::TinyPtrVector<ModuleMacro*> OverriddenMacros;
>>> >>>> +  };
>>> >>>> +
>>> >>>>    /// The state of a macro for an identifier.
>>> >>>>    class MacroState {
>>> >>>> -    struct ExtInfo {
>>> >>>> -      ExtInfo(MacroDirective *MD) : MD(MD) {}
>>> >>>> -
>>> >>>> -      // The most recent macro directive for this identifier.
>>> >>>> -      MacroDirective *MD;
>>> >>>> -      // The module macros that are overridden by this macro.
>>> >>>> -      SmallVector<ModuleMacro*, 4> OverriddenMacros;
>>> >>>> -    };
>>> >>>> +    mutable llvm::PointerUnion<MacroDirective *, ModuleMacroInfo *>
>>> >>>> State;
>>> >>>>
>>> >>>> -    llvm::PointerUnion<MacroDirective *, ExtInfo *> State;
>>> >>>> -
>>> >>>> -    ExtInfo &getExtInfo(Preprocessor &PP) {
>>> >>>> -      auto *Ext = State.dyn_cast<ExtInfo*>();
>>> >>>> -      if (!Ext) {
>>> >>>> -        Ext = new (PP.getPreprocessorAllocator())
>>> >>>> -            ExtInfo(State.get<MacroDirective *>());
>>> >>>> -        State = Ext;
>>> >>>> +    ModuleMacroInfo *getModuleInfo(Preprocessor &PP, IdentifierInfo
>>> >>>> *II)
>>> >>>> const {
>>> >>>> +      // FIXME: Find a spare bit on IdentifierInfo and store a
>>> >>>> +      //        HasModuleMacros flag.
>>> >>>> +      if (!II->hasMacroDefinition() || !PP.getLangOpts().Modules ||
>>> >>>> +          !PP.MacroVisibilityGeneration)
>>> >>>> +        return nullptr;
>>> >>>> +
>>> >>>> +      auto *Info = State.dyn_cast<ModuleMacroInfo*>();
>>> >>>> +      if (!Info) {
>>> >>>> +        Info = new (PP.getPreprocessorAllocator())
>>> >>>> +            ModuleMacroInfo(State.get<MacroDirective *>());
>>> >>>> +        State = Info;
>>> >>>>        }
>>> >>>> -      return *Ext;
>>> >>>> +
>>> >>>> +      if (PP.MacroVisibilityGeneration !=
>>> >>>> Info->ActiveModuleMacrosGeneration)
>>> >>>> +        PP.updateModuleMacroInfo(II, *Info);
>>> >>>> +      return Info;
>>> >>>>      }
>>> >>>>
>>> >>>>    public:
>>> >>>>      MacroState() : MacroState(nullptr) {}
>>> >>>>      MacroState(MacroDirective *MD) : State(MD) {}
>>> >>>>      MacroDirective *getLatest() const {
>>> >>>> -      if (auto *Ext = State.dyn_cast<ExtInfo*>())
>>> >>>> -        return Ext->MD;
>>> >>>> +      if (auto *Info = State.dyn_cast<ModuleMacroInfo*>())
>>> >>>> +        return Info->MD;
>>> >>>>        return State.get<MacroDirective*>();
>>> >>>>      }
>>> >>>>      void setLatest(MacroDirective *MD) {
>>> >>>> -      if (auto *Ext = State.dyn_cast<ExtInfo*>())
>>> >>>> -        Ext->MD = MD;
>>> >>>> +      if (auto *Info = State.dyn_cast<ModuleMacroInfo*>())
>>> >>>> +        Info->MD = MD;
>>> >>>>        else
>>> >>>>          State = MD;
>>> >>>>      }
>>> >>>>
>>> >>>> +    bool isAmbiguous(Preprocessor &PP, IdentifierInfo *II) const {
>>> >>>> +      auto *Info = getModuleInfo(PP, II);
>>> >>>> +      return Info ? Info->IsAmbiguous : false;
>>> >>>> +    }
>>> >>>> +    ArrayRef<ModuleMacro *> getActiveModuleMacros(Preprocessor &PP,
>>> >>>> +                                                  IdentifierInfo
>>> >>>> *II)
>>> >>>> const {
>>> >>>> +      if (auto *Info = getModuleInfo(PP, II))
>>> >>>> +        return Info->ActiveModuleMacros;
>>> >>>> +      return None;
>>> >>>> +    }
>>> >>>> +
>>> >>>>      MacroDirective::DefInfo findDirectiveAtLoc(SourceLocation Loc,
>>> >>>>                                                 SourceManager
>>> >>>> &SourceMgr)
>>> >>>> const {
>>> >>>> +      // FIXME: Incorporate module macros into the result of this.
>>> >>>>        return getLatest()->findDirectiveAtLoc(Loc, SourceMgr);
>>> >>>>      }
>>> >>>>
>>> >>>> -    void addOverriddenMacro(Preprocessor &PP, ModuleMacro *MM) {
>>> >>>> -      getExtInfo(PP).OverriddenMacros.push_back(MM);
>>> >>>> +    void overrideActiveModuleMacros(Preprocessor &PP,
>>> >>>> IdentifierInfo
>>> >>>> *II) {
>>> >>>> +      if (auto *Info = getModuleInfo(PP, II)) {
>>> >>>> +        for (auto *Active : Info->ActiveModuleMacros)
>>> >>>> +          Info->OverriddenMacros.push_back(Active);
>>> >>>> +        Info->ActiveModuleMacros.clear();
>>> >>>> +        Info->IsAmbiguous = false;
>>> >>>> +      }
>>> >>>>      }
>>> >>>>      ArrayRef<ModuleMacro*> getOverriddenMacros() const {
>>> >>>> -      if (auto *Ext = State.dyn_cast<ExtInfo*>())
>>> >>>> -        return Ext->OverriddenMacros;
>>> >>>> +      if (auto *Info = State.dyn_cast<ModuleMacroInfo*>())
>>> >>>> +        return Info->OverriddenMacros;
>>> >>>>        return None;
>>> >>>>      }
>>> >>>> +    void setOverriddenMacros(ArrayRef<ModuleMacro*> Overrides) {
>>> >>>> +      auto *Info = State.dyn_cast<ModuleMacroInfo*>();
>>> >>>> +      if (!Info) {
>>> >>>> +        assert(Overrides.empty() &&
>>> >>>> +               "have overrides but never had module macro");
>>> >>>> +        return;
>>> >>>> +      }
>>> >>>> +      Info->OverriddenMacros.clear();
>>> >>>> +      Info->OverriddenMacros.insert(Info->OverriddenMacros.end(),
>>> >>>> +                                    Overrides.begin(),
>>> >>>> Overrides.end());
>>> >>>> +      Info->ActiveModuleMacrosGeneration = 0;
>>> >>>> +    }
>>> >>>>    };
>>> >>>>
>>> >>>>    typedef llvm::DenseMap<const IdentifierInfo *, MacroState>
>>> >>>> MacroMap;
>>> >>>> @@ -435,8 +482,13 @@ class Preprocessor : public RefCountedBa
>>> >>>>      Module *M;
>>> >>>>      /// The location at which the module was included.
>>> >>>>      SourceLocation ImportLoc;
>>> >>>> +
>>> >>>> +    struct SavedMacroInfo {
>>> >>>> +      MacroDirective *Latest;
>>> >>>> +      llvm::TinyPtrVector<ModuleMacro*> Overridden;
>>> >>>> +    };
>>> >>>>      /// The macros that were visible before we entered the module.
>>> >>>> -    MacroMap Macros;
>>> >>>> +    llvm::DenseMap<const IdentifierInfo*, SavedMacroInfo> Macros;
>>> >>>>
>>> >>>>      // FIXME: VisibleModules?
>>> >>>>      // FIXME: CounterValue?
>>> >>>> @@ -447,6 +499,10 @@ class Preprocessor : public RefCountedBa
>>> >>>>    void EnterSubmodule(Module *M, SourceLocation ImportLoc);
>>> >>>>    void LeaveSubmodule();
>>> >>>>
>>> >>>> +  /// Update the set of active module macros and ambiguity flag for
>>> >>>> a
>>> >>>> module
>>> >>>> +  /// macro name.
>>> >>>> +  void updateModuleMacroInfo(IdentifierInfo *II, ModuleMacroInfo
>>> >>>> &Info);
>>> >>>> +
>>> >>>>    /// The set of known macros exported from modules.
>>> >>>>    llvm::FoldingSet<ModuleMacro> ModuleMacros;
>>> >>>>
>>> >>>> @@ -455,6 +511,10 @@ class Preprocessor : public RefCountedBa
>>> >>>>    llvm::DenseMap<const IdentifierInfo *,
>>> >>>> llvm::TinyPtrVector<ModuleMacro*>>
>>> >>>>        LeafModuleMacros;
>>> >>>>
>>> >>>> +  /// The generation number for module macros. Incremented each
>>> >>>> time the
>>> >>>> set
>>> >>>> +  /// of modules with visible macros changes.
>>> >>>> +  unsigned MacroVisibilityGeneration;
>>> >>>> +
>>> >>>>    /// \brief Macros that we want to warn because they are not used
>>> >>>> at
>>> >>>> the end
>>> >>>>    /// of the translation unit.
>>> >>>>    ///
>>> >>>>
>>> >>>> Modified: cfe/trunk/lib/Lex/PPDirectives.cpp
>>> >>>> URL:
>>> >>>>
>>> >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPDirectives.cpp?rev=235941&r1=235940&r2=235941&view=diff
>>> >>>>
>>> >>>>
>>> >>>> ==============================================================================
>>> >>>> --- cfe/trunk/lib/Lex/PPDirectives.cpp (original)
>>> >>>> +++ cfe/trunk/lib/Lex/PPDirectives.cpp Mon Apr 27 18:21:38 2015
>>> >>>> @@ -1693,6 +1693,7 @@ void Preprocessor::HandleIncludeDirectiv
>>> >>>>      ModuleLoadResult Imported
>>> >>>>        = TheModuleLoader.loadModule(IncludeTok.getLocation(), Path,
>>> >>>> Visibility,
>>> >>>>                                     /*IsIncludeDirective=*/true);
>>> >>>> +    ++MacroVisibilityGeneration;
>>> >>>>      assert((Imported == nullptr || Imported ==
>>> >>>> SuggestedModule.getModule()) &&
>>> >>>>             "the imported module is different than the suggested
>>> >>>> one");
>>> >>>>
>>> >>>>
>>> >>>> Modified: cfe/trunk/lib/Lex/PPLexerChange.cpp
>>> >>>> URL:
>>> >>>>
>>> >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPLexerChange.cpp?rev=235941&r1=235940&r2=235941&view=diff
>>> >>>>
>>> >>>>
>>> >>>> ==============================================================================
>>> >>>> --- cfe/trunk/lib/Lex/PPLexerChange.cpp (original)
>>> >>>> +++ cfe/trunk/lib/Lex/PPLexerChange.cpp Mon Apr 27 18:21:38 2015
>>> >>>> @@ -616,7 +616,13 @@ void Preprocessor::EnterSubmodule(Module
>>> >>>>    auto &Info = BuildingSubmoduleStack.back();
>>> >>>>    // Copy across our macros and start the submodule with the
>>> >>>> current
>>> >>>> state.
>>> >>>>    // FIXME: We should start each submodule with just the predefined
>>> >>>> macros.
>>> >>>> -  Info.Macros = Macros;
>>> >>>> +  for (auto &M : Macros) {
>>> >>>> +    BuildingSubmoduleInfo::SavedMacroInfo SMI;
>>> >>>> +    SMI.Latest = M.second.getLatest();
>>> >>>> +    auto O = M.second.getOverriddenMacros();
>>> >>>> +    SMI.Overridden.insert(SMI.Overridden.end(), O.begin(),
>>> >>>> O.end());
>>> >>>> +    Info.Macros.insert(std::make_pair(M.first, SMI));
>>> >>>> +  }
>>> >>>>  }
>>> >>>>
>>> >>>>  void Preprocessor::LeaveSubmodule() {
>>> >>>> @@ -625,12 +631,12 @@ void Preprocessor::LeaveSubmodule() {
>>> >>>>    // Create ModuleMacros for any macros defined in this submodule.
>>> >>>>    for (auto &Macro : Macros) {
>>> >>>>      auto *II = const_cast<IdentifierInfo*>(Macro.first);
>>> >>>> -    MacroState State = Info.Macros.lookup(II);
>>> >>>> +    auto SavedInfo = Info.Macros.lookup(II);
>>> >>>>
>>> >>>>      // This module may have exported a new macro. If so, create a
>>> >>>> ModuleMacro
>>> >>>>      // representing that fact.
>>> >>>>      bool ExplicitlyPublic = false;
>>> >>>> -    for (auto *MD = Macro.second.getLatest(); MD !=
>>> >>>> State.getLatest();
>>> >>>> +    for (auto *MD = Macro.second.getLatest(); MD !=
>>> >>>> SavedInfo.Latest;
>>> >>>>           MD = MD->getPrevious()) {
>>> >>>>        // Skip macros defined in other submodules we #included along
>>> >>>> the
>>> >>>> way.
>>> >>>>        Module *Mod = getModuleContainingLocation(MD->getLocation());
>>> >>>> @@ -659,11 +665,15 @@ void Preprocessor::LeaveSubmodule() {
>>> >>>>        }
>>> >>>>      }
>>> >>>>
>>> >>>> -    // Update the macro to refer to the latest directive in the
>>> >>>> chain.
>>> >>>> -    State.setLatest(Macro.second.getLatest());
>>> >>>> +    // Restore the macro's overrides list.
>>> >>>> +    Macro.second.setOverriddenMacros(SavedInfo.Overridden);
>>> >>>> +  }
>>> >>>>
>>> >>>> -    // Restore the old macro state.
>>> >>>> -    Macro.second = State;
>>> >>>> +  if (Info.M->NameVisibility < Module::MacrosVisible) {
>>> >>>> +    Info.M->NameVisibility = Module::MacrosVisible;
>>> >>>> +    Info.M->MacroVisibilityLoc = Info.ImportLoc;
>>> >>>> +    ++MacroVisibilityGeneration;
>>> >>>> +    // FIXME: Also mark any exported macros as visible, and check
>>> >>>> for
>>> >>>> conflicts.
>>> >>>>    }
>>> >>>>
>>> >>>>    BuildingSubmoduleStack.pop_back();
>>> >>>>
>>> >>>> Modified: cfe/trunk/lib/Lex/PPMacroExpansion.cpp
>>> >>>> URL:
>>> >>>>
>>> >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPMacroExpansion.cpp?rev=235941&r1=235940&r2=235941&view=diff
>>> >>>>
>>> >>>>
>>> >>>> ==============================================================================
>>> >>>> --- cfe/trunk/lib/Lex/PPMacroExpansion.cpp (original)
>>> >>>> +++ cfe/trunk/lib/Lex/PPMacroExpansion.cpp Mon Apr 27 18:21:38 2015
>>> >>>> @@ -50,6 +50,7 @@ void Preprocessor::appendMacroDirective(
>>> >>>>    auto *OldMD = StoredMD.getLatest();
>>> >>>>    MD->setPrevious(OldMD);
>>> >>>>    StoredMD.setLatest(MD);
>>> >>>> +  StoredMD.overrideActiveModuleMacros(*this, II);
>>> >>>>
>>> >>>>    // Set up the identifier as having associated macro history.
>>> >>>>    II->setHasMacroDefinition(true);
>>> >>>> @@ -57,43 +58,6 @@ void Preprocessor::appendMacroDirective(
>>> >>>>      II->setHasMacroDefinition(false);
>>> >>>>    if (II->isFromAST() && !MD->isImported())
>>> >>>>      II->setChangedSinceDeserialization();
>>> >>>> -
>>> >>>> -  // Accumulate any overridden imported macros.
>>> >>>> -  if (!MD->isImported() && getCurrentModule()) {
>>> >>>> -    Module *OwningMod =
>>> >>>> getModuleContainingLocation(MD->getLocation());
>>> >>>> -    if (!OwningMod)
>>> >>>> -      return;
>>> >>>> -
>>> >>>> -    for (auto *PrevMD = OldMD; PrevMD; PrevMD =
>>> >>>> PrevMD->getPrevious()) {
>>> >>>> -      Module *DirectiveMod =
>>> >>>> getModuleContainingLocation(PrevMD->getLocation());
>>> >>>> -      if (ModuleMacro *PrevMM = PrevMD->getOwningModuleMacro())
>>> >>>> -        StoredMD.addOverriddenMacro(*this, PrevMM);
>>> >>>> -      else if (ModuleMacro *PrevMM = getModuleMacro(DirectiveMod,
>>> >>>> II))
>>> >>>> -        // The previous macro was from another submodule that we
>>> >>>> #included.
>>> >>>> -        // FIXME: Create an import directive when importing a macro
>>> >>>> from
>>> >>>> a local
>>> >>>> -        // submodule.
>>> >>>> -        StoredMD.addOverriddenMacro(*this, PrevMM);
>>> >>>> -      else
>>> >>>> -        // We're still within the module defining the previous
>>> >>>> macro. We
>>> >>>> don't
>>> >>>> -        // override it.
>>> >>>> -        break;
>>> >>>> -
>>> >>>> -      // Stop once we leave the original macro's submodule.
>>> >>>> -      //
>>> >>>> -      // Either this submodule #included another submodule of the
>>> >>>> same
>>> >>>> -      // module or it just happened to be built after the other
>>> >>>> module.
>>> >>>> -      // In the former case, we override the submodule's macro.
>>> >>>> -      //
>>> >>>> -      // FIXME: In the latter case, we shouldn't do so, but we
>>> >>>> can't
>>> >>>> tell
>>> >>>> -      // these cases apart.
>>> >>>> -      //
>>> >>>> -      // FIXME: We can leave this submodule and re-enter it if it
>>> >>>> #includes a
>>> >>>> -      // header within a different submodule of the same module. In
>>> >>>> such
>>> >>>> cases
>>> >>>> -      // the overrides list will be incomplete.
>>> >>>> -      if (DirectiveMod != OwningMod || !PrevMD->isImported())
>>> >>>> -        break;
>>> >>>> -    }
>>> >>>> -  }
>>> >>>>  }
>>> >>>>
>>> >>>>  void Preprocessor::setLoadedMacroDirective(IdentifierInfo *II,
>>> >>>> @@ -157,6 +121,71 @@ ModuleMacro *Preprocessor::getModuleMacr
>>> >>>>    return ModuleMacros.FindNodeOrInsertPos(ID, InsertPos);
>>> >>>>  }
>>> >>>>
>>> >>>> +void Preprocessor::updateModuleMacroInfo(IdentifierInfo *II,
>>> >>>> +                                         ModuleMacroInfo &Info) {
>>> >>>> +  assert(Info.ActiveModuleMacrosGeneration !=
>>> >>>> MacroVisibilityGeneration
>>> >>>> &&
>>> >>>> +         "don't need to update this macro name info");
>>> >>>> +  Info.ActiveModuleMacrosGeneration = MacroVisibilityGeneration;
>>> >>>> +
>>> >>>> +  auto Leaf = LeafModuleMacros.find(II);
>>> >>>> +  if (Leaf == LeafModuleMacros.end()) {
>>> >>>> +    // No imported macros at all: nothing to do.
>>> >>>> +    return;
>>> >>>> +  }
>>> >>>> +
>>> >>>> +  Info.ActiveModuleMacros.clear();
>>> >>>> +
>>> >>>> +  // Every macro that's locally overridden is overridden by a
>>> >>>> visible
>>> >>>> macro.
>>> >>>> +  llvm::DenseMap<ModuleMacro *, int> NumHiddenOverrides;
>>> >>>> +  for (auto *O : Info.OverriddenMacros)
>>> >>>> +    NumHiddenOverrides[O] = -1;
>>> >>>> +
>>> >>>> +  // Collect all macros that are not overridden by a visible macro.
>>> >>>> +  llvm::SmallVector<ModuleMacro *, 16>
>>> >>>> Worklist(Leaf->second.begin(),
>>> >>>> +
>>> >>>> Leaf->second.end());
>>> >>>> +  while (!Worklist.empty()) {
>>> >>>> +    auto *MM = Worklist.pop_back_val();
>>> >>>> +    if (MM->getOwningModule()->NameVisibility >=
>>> >>>> Module::MacrosVisible)
>>> >>>> {
>>> >>>> +      // We only care about collecting definitions; undefinitions
>>> >>>> only
>>> >>>> act
>>> >>>> +      // to override other definitions.
>>> >>>> +      if (MM->getMacroInfo())
>>> >>>> +        Info.ActiveModuleMacros.push_back(MM);
>>> >>>> +    } else {
>>> >>>> +      for (auto *O : MM->overrides())
>>> >>>> +        if ((unsigned)++NumHiddenOverrides[O] ==
>>> >>>> O->getNumOverridingMacros())
>>> >>>> +          Worklist.push_back(O);
>>> >>>> +    }
>>> >>>> +  }
>>> >>>> +
>>> >>>> +  // Determine whether the macro name is ambiguous.
>>> >>>> +  Info.IsAmbiguous = false;
>>> >>>> +  MacroInfo *MI = nullptr;
>>> >>>> +  bool IsSystemMacro = false;
>>> >>>> +  if (auto *DMD = dyn_cast<DefMacroDirective>(Info.MD)) {
>>> >>>> +    MI = DMD->getInfo();
>>> >>>> +    IsSystemMacro = SourceMgr.isInSystemHeader(DMD->getLocation());
>>> >>>> +  }
>>> >>>> +  for (auto *Active : Info.ActiveModuleMacros) {
>>> >>>> +    auto *NewMI = Active->getMacroInfo();
>>> >>>> +
>>> >>>> +    // Before marking the macro as ambiguous, check if this is a
>>> >>>> case
>>> >>>> where
>>> >>>> +    // both macros are in system headers. If so, we trust that the
>>> >>>> system
>>> >>>> +    // did not get it wrong. This also handles cases where Clang's
>>> >>>> own
>>> >>>> +    // headers have a different spelling of certain system macros:
>>> >>>> +    //   #define LONG_MAX __LONG_MAX__ (clang's limits.h)
>>> >>>> +    //   #define LONG_MAX 0x7fffffffffffffffL (system's limits.h)
>>> >>>> +    //
>>> >>>> +    // FIXME: Remove the defined-in-system-headers check. clang's
>>> >>>> limits.h
>>> >>>> +    // overrides the system limits.h's macros, so there's no
>>> >>>> conflict
>>> >>>> here.
>>> >>>> +    IsSystemMacro &= Active->getOwningModule()->IsSystem;
>>> >>>> +    if (MI && NewMI != MI && !IsSystemMacro &&
>>> >>>> +        !MI->isIdenticalTo(*NewMI, *this, /*Syntactically=*/true))
>>> >>>> {
>>> >>>> +      Info.IsAmbiguous = true;
>>> >>>> +      break;
>>> >>>> +    }
>>> >>>> +  }
>>> >>>> +}
>>> >>>> +
>>> >>>>  /// RegisterBuiltinMacro - Register the specified identifier in the
>>> >>>> identifier
>>> >>>>  /// table and mark it as a builtin macro to be expanded.
>>> >>>>  static IdentifierInfo *RegisterBuiltinMacro(Preprocessor &PP, const
>>> >>>> char
>>> >>>> *Name){
>>> >>>>
>>> >>>> Modified: cfe/trunk/lib/Lex/Preprocessor.cpp
>>> >>>> URL:
>>> >>>>
>>> >>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/Preprocessor.cpp?rev=235941&r1=235940&r2=235941&view=diff
>>> >>>>
>>> >>>>
>>> >>>> ==============================================================================
>>> >>>> --- cfe/trunk/lib/Lex/Preprocessor.cpp (original)
>>> >>>> +++ cfe/trunk/lib/Lex/Preprocessor.cpp Mon Apr 27 18:21:38 2015
>>> >>>> @@ -73,7 +73,8 @@ Preprocessor::Preprocessor(IntrusiveRefC
>>> >>>>        ModuleImportExpectsIdentifier(false),
>>> >>>> CodeCompletionReached(0),
>>> >>>>        MainFileDir(nullptr), SkipMainFilePreamble(0, true),
>>> >>>> CurPPLexer(nullptr),
>>> >>>>        CurDirLookup(nullptr), CurLexerKind(CLK_Lexer),
>>> >>>> CurSubmodule(nullptr),
>>> >>>> -      Callbacks(nullptr), MacroArgCache(nullptr), Record(nullptr),
>>> >>>> +      Callbacks(nullptr), MacroVisibilityGeneration(0),
>>> >>>> +      MacroArgCache(nullptr), Record(nullptr),
>>> >>>>        MIChainHead(nullptr), DeserialMIChainHead(nullptr) {
>>> >>>>    OwnsHeaderSearch = OwnsHeaders;
>>> >>>>
>>> >>>> @@ -748,11 +749,13 @@ void Preprocessor::LexAfterModuleImport(
>>> >>>>    // If we have a non-empty module path, load the named module.
>>> >>>>    if (!ModuleImportPath.empty()) {
>>> >>>>      Module *Imported = nullptr;
>>> >>>> -    if (getLangOpts().Modules)
>>> >>>> +    if (getLangOpts().Modules) {
>>> >>>>        Imported = TheModuleLoader.loadModule(ModuleImportLoc,
>>> >>>>                                              ModuleImportPath,
>>> >>>>                                              Module::MacrosVisible,
>>> >>>>
>>> >>>> /*IsIncludeDirective=*/false);
>>> >>>> +      ++MacroVisibilityGeneration;
>>> >>>> +    }
>>> >>>>      if (Callbacks && (getLangOpts().Modules ||
>>> >>>> getLangOpts().DebuggerSupport))
>>> >>>>        Callbacks->moduleImport(ModuleImportLoc, ModuleImportPath,
>>> >>>> Imported);
>>> >>>>    }
>>> >>>>
>>> >>>>
>>> >>>> _______________________________________________
>>> >>>> cfe-commits mailing list
>>> >>>> cfe-commits at cs.uiuc.edu
>>> >>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Alexey Samsonov
>>> >>> vonosmas at gmail.com
>>> >>
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> 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
>>
>



More information about the cfe-commits mailing list