The Driver needs DefaultImageName which is based on the target triple but
the only location the target triple is computed using  computeTargetTriple() is
in getToolChain() and the target triple is not kept otherwise.

We could have getToolChain return the computed target triple to its
caller BuildCompilation (non const mmeber function) and have
BuildCompilation set DefaultImageName based on the OS. Does this make sense
to you?

I'll fix the test.






2015-01-08 23:16 GMT+02:00 Hans Wennborg <[email protected]>:

> On Sun, Jan 4, 2015 at 5:48 AM, Yaron Keren <[email protected]> wrote:
> > Author: yrnkrn
> > Date: Sun Jan  4 07:48:30 2015
> > New Revision: 225134
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=225134&view=rev
> > Log:
> > Fix default image name to 'a.exe' on Windows, instead 'a.out'.
> > This applies to mingw as clang-cl already has its own logic for the
> filename.
>
> [..]
>
> > Modified: cfe/trunk/lib/Driver/Driver.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Driver.cpp?rev=225134&r1=225133&r2=225134&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/lib/Driver/Driver.cpp (original)
> > +++ cfe/trunk/lib/Driver/Driver.cpp Sun Jan  4 07:48:30 2015
> > @@ -1996,6 +1996,8 @@ const ToolChain &Driver::getToolChain(co
> >                                        StringRef DarwinArchName) const {
> >    llvm::Triple Target = computeTargetTriple(DefaultTargetTriple, Args,
> >                                              DarwinArchName);
> > +  if (Target.isOSWindows())
> > +    DefaultImageName = "a.exe";
>
> This doesn't seem right. Why should getToolChain() be changing the
> Driver's DefaultImageName? That this requires DefaultImageName to be
> mutable makes it feel even more iffy.
>
> Maybe DefaultImageName should be a property of the Target? Or perhaps
> there should be a "const char *Driver::DefaultImageName(llvm::Triple)"
> method?
>
>
> > Modified: cfe/trunk/test/Driver/lto.c
>
> It would be nice to test for the default image name explicitly by
> setting -target and looking at the cc1 invocation.
>
>  - Hans
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to