[cfe-dev] Windows patches

John Thompson john.thompson.jtsoftware at gmail.com
Thu Oct 8 12:08:16 PDT 2009


Hi,

I haven't heard back about some of the patches I've posted over the last few
weeks.  Some did get some discussion and I reworked them, but the final
patch hasn't made it in yet.  Here's a big patch file with my accumulated
changes, which I will summarize below, fresh after an update.

Could someone help me out by evaluating them, and submit them, or give me
some feedback so I can rework them?

Basically my goal is to get all the tests passing on Windows, and most of
these relate to that.  There are still 23 failing tests, but some of them
have similar problems, so the feedback from these might help me know the
most appropriate way to deal with them, and avoid wasting time doing stuff
that's not appropriate.

Also, if you'd prefer I do patches in a different way, i.e. do one file at a
time, groups of similar changes, or just one big one for the remaining 23
failures, or post these to cfe-commits instead, please let me know what
works best for you.

The summaries:

test/CodeGenCXX/predefined-expr.cpp:
CodeGenObjC/predefined-expr.m:
test/CodeGen/stack-protector.c:

The above all comment out the stdio.h inclusion and instead declare printf,
to avoid problems parsing VC++'s stdio.h, particularly if a different target
triple is specified.

test/Driver/darwin-ld.c:
test/Driver/darwin-as.c:

Add a "*" to the grep or FileCheck string to account for the ".EXE" on
windows.

test/CodeGen/address-space-field2.c:
test/CodeGen/address-space-field3.c:
test/CodeGen/address-space-field4.c:

Converted to FileCheck to avoid problems with grep on Windows.

test/CodeGen/const-init.c:
test/CodeGen/cast-to-union.c:

In VC++, the *printf functions put an extra "0" in the exponent part of a
floating point number.  This add regular expressions to account for this.

include/clang/Frontend/InitHeaderSearch.h:
lib/Frontend/InitHeaderSearch.cpp:
tools/clang-cc/clang-cc.cpp:

This is a slight revision to the patch I posted yesterday to have the
default include path code use the target triple, as the line numbers were
off due to some other changes.  It also sets up include paths for VC++ and
Cygwin headers, along with the existing MinGW headers, plus the newer 4.4.0
version.  Note that running the tests with the MinGW headers results in 40
or more failed tests.  Currently, with this patch, only 23 tests are failing
with the VC++ headers.  I did leave in some disabled code regarding the
question I posted yesterday about including windows.h for the registry
stuff.

include/clang/Lex/LiteralSupport.h:
lib/Lex/LiteralSupport.cpp:

This fixes support for complex literals, reworked to avoid a goto, and to
add a flag noting the presence of a Microsoft extension suffix (i8, i16,
i32, i64).

lib/Basic/Targets.cpp:

Someone pointed out that in my previous Targets.cpp patch I didn't handle
the long size difference for one of the Windows targets.  This fixes that.

lib/Headers/stdint.h:

I think I got this from Daniel.  I believe it fixes some failing tests.

-John

P.S.  Is there some reason why the VC++ buildbot is off-line?

-- 
John Thompson
John.Thompson.JTSoftware at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20091008/d065f49b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: win32all.patch
Type: application/octet-stream
Size: 33793 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20091008/d065f49b/attachment.obj>


More information about the cfe-dev mailing list