aboutsummaryrefslogtreecommitdiff
path: root/Driver
AgeCommit message (Collapse)Author
2007-12-12resolve some fixmes and clean up some code by eliminating the get*Vars apis ↵Chris Lattner
to some classes and use iterators instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44927 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-12Simplify some code, don't force the triple to a darwin triple if non-darwin.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44911 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Moved creation of SourceManager, HeaderSearch, TargetInfo, and LangOptionsTed Kremenek
into the loop that processes input files. These will soon become translation unit specific (with the exception of LangOptions). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44893 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-1180-column please.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44888 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Modified the internals of Diagnostic and DiagnosticClient to useTed Kremenek
SourceManager*'s instead of SourceManager&'s. This allows the client specify a NULL SourceManager when using a default constructed SourceLocation. Thus the SourceManager can be NULL when the SourceLocation's isValid() == false. The interface to most clients of Diagnostic remains the same. Diagnostic::Report() is overload to either accept a SourceLocation and a SourceManager&, or neither. Thus clients that do not have a SourceManager cannot specify a SourceLocation. Modified TextDiagnostics* to use this new interface. Modified the driver to not passed in SourceManager when warning about "-I-". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44887 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Implemented rewriting of protocol-qualified global variable types.Fariborz Jahanian
Re-implemented some of rewriting of protocol-qualified function argument types to support it in its generality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44886 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Mega-patch: ripped SourceManager out of Diagnostic/DiagnosticClient. NowTed Kremenek
SourceManager is passed by reference, allowing the SourceManager to be associated with a specific translation unit, and not the entire execution of the driver. Modified all users of Diagnostics to comply with this new interface. Integrated SourceManager as a member variable of TargetInfo. TargetInfo will eventually be associated with a single translation unit (just like SourceManager). Made the SourceManager reference in ASTContext private. Provided accessor getSourceManager() for clients to use instead. Modified clients to comply with new interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44878 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11Refactor Rewritetest::RewriteObjcQualifiedInterfaceTypes in preparation for moreFariborz Jahanian
general use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44876 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-11properly namespacify.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44845 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09Move target specific builtin IDs to TargetBuiltins.h so that they can be ↵Anders Carlsson
used by CGBuiltin.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44748 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09The flags on tokens indicate whether they are the start of a *physical* line, Chris Lattner
not the start of a logical line. Be careful about this distinction, which affects when newlines are printed and when paste-avoidance happens, etc. This fixes PR1848, thanks to Neil for noticing this! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44743 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09Fix a pretty big but subtle bug counting the number of newlines to emit.Chris Lattner
This would cause us to emit different code (in -E mode) for these two files: --- #define t(x) x t(a 3) --- #define t(x) x t(a 3) --- In one case, -E would print "a\n3", in the other it printed "a3". Now it prints "a3" for both. This is part of PR1848. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44742 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-09avoid ///usr/include/foo.h, patch by Sean MiddleditchChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44731 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-08Add getTargetPrefix to TargetInfo, to be used with target specific intrinsics.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44712 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-07Omit the field name when including the super class structure template.Steve Naroff
This allows us to access a superclasses ivars without deriving the absolute path. The comments below say a bit more... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44688 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-07Implemented when static typing is combined with protocols and use as receiverFariborz Jahanian
type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44685 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-07Patch for rewriting of @protocol.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44681 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-07Rewrite 'super' within a class method. This required some minor tweaks to ↵Steve Naroff
the front-end. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44673 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-06On Steve's suggestion, moved handling of use of undeclared method in a messageFariborz Jahanian
to rewriter (my previous patch). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44665 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Subdivided the function InitializeBaseLanguage into InitializeBaseLanguage,Ted Kremenek
GetLanguage, and InitializeLangOptions. The goal is to break up this logic into atomic units of functionality that can later be refactored into better driver logic that is capable of handling a mixture of source files of different languages. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44642 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Avoid passing Diags into InitializeIncludePaths.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44639 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Converted SerializationTest (--test-pickling) to use the new TranslationUnitTed Kremenek
class to serialize and deserialize translation units. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44634 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Make sure the class methods get attached to the metaclass object.Steve Naroff
Need to query the implementation, not the interface... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44633 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Added "TranslationUnit" class that will be used to provide an interfaceTed Kremenek
for serializing/deserializing ASTs that is decoupled from the logic in SerializationTest (which will soon be rewritten to use this interface). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44631 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Modified: CreateTargetInfo(). Now takes Diagnostic* instead of Diagnostic&.Ted Kremenek
Modified: ctor of SerializationTest: Now takes LangOptions argument. We will eventually serialize this as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44630 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05I'm apparently the only sad lonely ppc user left :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44622 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Moved creation of ASTConsumers that can operate on both freshly-parsed andTed Kremenek
deserialized ASTs into the function CreateASTConsumer(). This function is called by ProcessInputFile, and soon the logic that processes deserialized ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44618 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Changed type-cast of "struct objc_super"'s 2nd initializer to match ↵Fariborz Jahanian
definition of "struct objc_super". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44616 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-05Added serialization support of SourceManager to the clang driver.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-04Add the definition of objc_super...Steve Naroff
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44588 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-04Type-cast initializers for "struct objc_super" parameter to avoid warning.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44583 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-04Don't assert if objc.h not declared when rewriting.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44580 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-04Removed a "TODO" comment as objc1 runtime does not need to do the "TODO".Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44577 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-04Removed searching for "darwin" keyword in target triple. We don't really supportTed Kremenek
any alternative targets at this point other than "darwin," so we now default to Darwin targets (for now). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Fixed order of operands to strstr call.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44561 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03For target processing, on non-Darwin systems instead of using the host triple,Ted Kremenek
we default to "i386-apple-darwin". This is an interim solution. Removed processing of "linux" triples from Targets.cpp, since we don't have any sensical Linux target support (yet). Cleaned up error processing of targets; added better diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44560 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Change <Objc/objc.h> to <objc/objc.h>Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44556 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Implemented serialization of TargetInfo.Ted Kremenek
SerializationTest (subclass of ASTConsumer) now takes Diagnostics& in its ctor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44555 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Fixed a bug exposed by referencing an ivar field using component reference ↵Fariborz Jahanian
syntax. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44553 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Few cleanups to patch 44551:Ted Kremenek
http://llvm.org/viewvc/llvm-project?view=rev&revision=44551 Removed debugging fprintfs for printing targets. Implemented error messages when processing invalid targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44552 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Implemented initial support for "-triple" option to the clang driver. ThisTed Kremenek
replaces the functionality previously provided by just "-arch" (which is still supported but has different semantics). The new behavior is as follows: (1) If the user does not specify -triple: (a) If no -arch options are specified, the target triple used is the host triple (in llvm/Config/config.h). (b) If one or more -arch's are specified (and no -triple), then there is one triple for each -arch, where the specified arch is substituted for the arch in the host triple. Example: host triple = i686-apple-darwin9 command: clang -arch ppc -arch ppc64 ... triples used: ppc-apple-darwin9 ppc64-apple-darwin9 (2) The user does specify a -triple (only one allowed): (a) If no -arch options are specified, the triple specified by -triple is used. E.g clang -triple i686-apple-darwin9 (b) If one or more -arch options are specified, then the triple specified by -triple is used as the primary target, and the arch's specified by -arch are used to create secondary targets. For example: clang -triple i686-apple-darwin9 -arch ppc -arch ppc64 has the following targets: i686-apple-darwin9 (primary target) ppc-apple-darwin9 ppc64-apple-darwin9 Other changes related to the changes to the driver: - TargetInfoImpl now includes the triple string. - TargetInfo::getTargetTriple returns the triple for its primary target. - test case test/Parser/portability.c has been updated because "-arch linux" is no longer valid ("linux" is an OS, not an arch); instead we use a bogus architecture "bogusW16W16" where WCharWidth=16 and WCharAlign=16. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44551 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Fix an ast-print/ast-dump bug.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44550 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Support for rewriteing of messaging of methods which return float.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44548 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-03Added support for messagings which return a structure-value.Fariborz Jahanian
(Also fixed a regression caused by recent changes to synthesis of structs). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44540 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02Warn about unsupported codegen with the diags machinery, giving us:Chris Lattner
t.c:3322:5: warning: cannot codegen this yet __asm__ ("bswap %0" : "+r" (_data)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ instead of: Unimplemented stmt! (AsmStmt 0x80eaa0 <t.c:3331:5, line:3334:28>) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44501 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02fix a crash when the rewriter would scan off the beginning of the file.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44499 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-02add support for custom client-specific diagnostics. As a testcase, make the Chris Lattner
rewriter emit this error if it fails to rewrite an @encode: t.m:17:9: error: rewriter could not replace sub-expression due to macros c = ENC(char *)[2] + 4; ^~~~~~~~~~~ ... where ENC is: #define ENC @encode git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44498 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30start partitioning the diagnostics into two classes: thoseChris Lattner
that are builtin and those that are aren't. This is a bunch of API refactoring that will make this possible, but there is no functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44473 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30Implemented serialization of SelectorTable and Selectors.Ted Kremenek
Modified serialization of IdentifierTable to self-register itself with the Deserializer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44471 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-30pass diagnostics into the rewrite test client.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44468 91177308-0d34-0410-b5e6-96231b3b80d8