Commit Graph

881 Commits

Author SHA1 Message Date
Benjamin Kramer fb5f40f959 Avoid an instantiation of std::sort.
llvm-svn: 93882
2010-01-19 17:42:20 +00:00
John McCall e15bbff98d Preserve type source information in compound literal expressions.
Patch by Enea Zaffanella!

llvm-svn: 93752
2010-01-18 19:35:47 +00:00
Douglas Gregor 9a48db1659 Print fix-it hints properly around tabs, from Christian Adåker!
llvm-svn: 93750
2010-01-18 19:28:01 +00:00
Douglas Gregor c9b7a59b30 Improve source-location information for builtin TypeLocs, from Enea
Zaffanella (with a couple of my tweaks).

llvm-svn: 93733
2010-01-18 18:04:31 +00:00
Douglas Gregor 8c94086c90 Encoding calling conventions in the type system, from Charles Davis!
llvm-svn: 93726
2010-01-18 17:14:39 +00:00
Nuno Lopes 28b40ddbe8 PR6055: fix FreeBSD c++ include path. patch by Roman Divacky
llvm-svn: 93668
2010-01-17 00:00:11 +00:00
Sam Weinig d01101e2d7 Add PCH support for CXXStaticCastExpr, CXXDynamicCastExpr, CXXReinterpretCastExpr, CXXConstCastExpr and CXXFunctionalCastExpr.
llvm-svn: 93658
2010-01-16 21:21:01 +00:00
Fariborz Jahanian faf85c0dbe Fix a rewriting crash and correct rewriting of __block
declaration where its initializer has a type-cast.

llvm-svn: 93650
2010-01-16 19:36:43 +00:00
Douglas Gregor 071676f422 Improve location information for Objective-C category declarations. We
previously only had a single location (the @ in @interface); now we
know where the @ is (for the start of the declaration), where the
class name is (that's the normal "location" now for diagnostics), and
where the category name is. Also, eliminated the redundant "end"
location, since ObjCContainerDecl already has better @end information.

The only XFAIL'd test is temporary; will un-XFAIL-it once I've taught
CIndex how to use the new locations.

llvm-svn: 93639
2010-01-16 16:38:58 +00:00
Douglas Gregor 002b671055 Keep track of the source locations for each protocol reference in
Objective-C classes, protocol definitions, forward protocol
declarations, and categories. This information isn't actually used
yet; that's coming next.

llvm-svn: 93636
2010-01-16 15:02:53 +00:00
Fariborz Jahanian f0462ff691 define __weak to null in rewritten source for
-fms-extensions as well.

llvm-svn: 93569
2010-01-15 22:29:39 +00:00
John McCall 9751396d70 Preserve type source information in explicit cast expressions.
Patch by Enea Zaffanella.

llvm-svn: 93522
2010-01-15 18:39:57 +00:00
Fariborz Jahanian 5c26eeefdd Do not do the block-specific rewrite when there is no block literals.
Fixes radar 7546096.

llvm-svn: 93519
2010-01-15 18:14:52 +00:00
Fariborz Jahanian 195ac2dfab Patch to avoid duplicate declaration of byref structs
for __block variables of same name declared in multiple scopes.
Fixes radar 7540194

llvm-svn: 93474
2010-01-14 23:05:52 +00:00
Fariborz Jahanian e2dd5428e6 Fix a bug in rewrite whereby functions using blocks put extern "C" in wrong place.
Fixes radar 7284618.

llvm-svn: 93382
2010-01-14 00:35:56 +00:00
John McCall e8595036c4 Add type source information for both kinds of typeof types.
Patch by Enea Zaffanella.

llvm-svn: 93344
2010-01-13 20:03:27 +00:00
Fariborz Jahanian 3f7b8b274d Predefine __weak attribute when doing objective-c
rewriting for any target. (refixes radar 7530235).

llvm-svn: 93331
2010-01-13 18:51:17 +00:00
Chris Lattner 3d756f1a9e diagnose invalid values of -ftabstop, patch by Christian Adaker!
llvm-svn: 93288
2010-01-13 03:06:50 +00:00
Daniel Dunbar 4f2bc55d4e cc1: Factor out CompilerInstance::ExecuteAction which has the majority of the
clang -cc1 logic for running an action against a set of options.
 - This should make it easier to build tools that have a clang -cc1 like
   interface, but aren't actually part of clang -cc1.

llvm-svn: 93282
2010-01-13 00:48:06 +00:00
Fariborz Jahanian 12e2e86f0f Improve on objective-c pointer recognition
during rewrite. No functionality chang.

llvm-svn: 93241
2010-01-12 17:31:23 +00:00
Fariborz Jahanian 5951609ac2 Fix rewriting of MacOS sjlj based eh.
Fixes radar 7522880.

llvm-svn: 93219
2010-01-12 01:22:23 +00:00
Fariborz Jahanian 1c2cb6df9e Fix rewriting for forward class declaration.
(fixes radar 6969189).

llvm-svn: 93201
2010-01-11 22:48:40 +00:00
Fariborz Jahanian 9146e44124 Fixup rewrite of ivars accessed via an explicit object
in a function. Fixes radar 7522803.

llvm-svn: 93159
2010-01-11 17:50:35 +00:00
Benjamin Kramer e056cea3a6 Silence MSVC warning.
RewriteObjC.cpp(4419) : warning C4804: '>' : unsafe use of type 'bool' in operation

llvm-svn: 93124
2010-01-10 19:57:50 +00:00
Anton Korobeynikov 55bcea1e65 Generalize target weirdness handling having proper layering in mind:
1. Add helper class for sema checks for target attributes
 2. Add helper class for codegen of target attributes

As a proof-of-concept - implement msp430's 'interrupt' attribute.

llvm-svn: 93118
2010-01-10 12:58:08 +00:00
Daniel Dunbar d281a7146a Fix PR5982, a refacto in checking for '=' in a -D argument.
llvm-svn: 93088
2010-01-10 00:46:21 +00:00
Chris Lattner e23003d1f1 implement -ftabstop=width, patch by Christian Adåker
llvm-svn: 93078
2010-01-09 21:54:33 +00:00
Chris Lattner b71980f888 revert 91891, a workaround for PR5514.
llvm-svn: 93077
2010-01-09 21:45:57 +00:00
Benjamin Kramer 2d6fda3205 Use MacroBuilder for TargetDefines instead of std::vector.
llvm-svn: 93058
2010-01-09 17:55:51 +00:00
Benjamin Kramer 3f6323dea5 Move MacroBuilder into Frontend/Utils.h and clean it up a bit.
llvm-svn: 93057
2010-01-09 17:43:21 +00:00
Benjamin Kramer f65e959035 Rework InitPreprocessor to use a MacroBuilder class instead of pushing around
std::vectors.

- MacroBuilder wraps a raw_ostream so it can easily write to any buffer
  supported by raw_ostream.
- MacroBuilder's method take Twines for easy string concatenation (this was done
  with sprintf and temporary buffers before).
- Targets still use std::vector as they don't have access to the builder.

llvm-svn: 93051
2010-01-09 16:17:37 +00:00
Kovarththanan Rajaratnam e8ed5be89f Switch UndefineBuiltinMacro() over to using StringRef
llvm-svn: 93049
2010-01-09 09:31:32 +00:00
Kovarththanan Rajaratnam 2f14619d89 Switch DefineBuiltinMacro() over to using StringRef
llvm-svn: 93048
2010-01-09 09:27:11 +00:00
Chris Lattner 002ba6b4d0 improve support for dragonfly, patch by Sascha Wildner!
llvm-svn: 93044
2010-01-09 05:41:14 +00:00
Dan Gohman d1e76b957b Use -fno-math-errno by default, and remove the IsMathErrnoDefault
targethook, which is no longer being used. This fixes PR5971.

llvm-svn: 92987
2010-01-08 02:20:44 +00:00
Fariborz Jahanian 39d70940e4 clang ObjC rewriter: generated code used in "for (x in y)" loop uses
incorrect cast, causing compile error (fixes radar 7342867).

llvm-svn: 92986
2010-01-08 01:29:44 +00:00
Fariborz Jahanian bc6811c32e Fixes a bug where we were rewriting two definitions of
_objc_method (part of radar 7490408).

llvm-svn: 92957
2010-01-07 22:51:18 +00:00
Fariborz Jahanian 1444230c40 Fixes a bug in my last patch (related to radar 7490331).
llvm-svn: 92952
2010-01-07 22:15:31 +00:00
Fariborz Jahanian 9ab6349f2a Avoid error when convering a pointer to integer in
rewriting.

llvm-svn: 92925
2010-01-07 18:31:42 +00:00
Fariborz Jahanian 0f3aecf272 Fix rewriting of ivars. Fixes radar 7490331.
llvm-svn: 92924
2010-01-07 18:18:32 +00:00
Kovarththanan Rajaratnam 49c8da95a3 Convert from char pointer to char array
llvm-svn: 92923
2010-01-07 18:11:14 +00:00
Ted Kremenek db2ef3732f Fix typo: rename Rewriter::getRewritenText() -> Rewriter::getRewrittenText().
llvm-svn: 92922
2010-01-07 18:00:35 +00:00
Kovarththanan Rajaratnam b53c7d4d9d Tigthen scope of local char array
llvm-svn: 92917
2010-01-07 16:01:54 +00:00
Ted Kremenek c7c6431860 Change ObjCContainerDecl to contain the entire range for the '@end'
piece of the declaration.  The '@' and the 'end' are separate tokens,
and require two SourceLocations to accurately track.

This change was motivated because ObjCContainerDecl::getSourceRange()
would previously not return the entire range of the declaration (the
'end' would be left off).

llvm-svn: 92891
2010-01-07 01:20:12 +00:00
Douglas Gregor 10f1e4dda8 When suggesting a typo correction for an @implementation without a
corresponding @interface, provide a note showing which interface we're
referring to. This note has the fix-it hint on it.

Also, don't automatically apply fix-it hints for notes. They're meant
to express fix-its that would change semantics.

llvm-svn: 92870
2010-01-06 23:44:25 +00:00
Douglas Gregor 03e8bdc07e Move the allocation of designators in DesignatedInitExpr to the
ASTContext. Fixes <rdar://problem/7495428>.

llvm-svn: 92867
2010-01-06 23:17:19 +00:00
Fariborz Jahanian b8646edecd Fixed a bug where initializer is a macro in rewrite.
llvm-svn: 92801
2010-01-05 23:06:29 +00:00
Fariborz Jahanian 7fac65572f API support for __block variables which are also __weak.
llvm-svn: 92755
2010-01-05 19:21:35 +00:00
Fariborz Jahanian f794543472 Minor clean up.
llvm-svn: 92746
2010-01-05 18:15:57 +00:00
Steve Naroff 7bf01ea165 Remove bogus "C" from preamble block decls.
llvm-svn: 92744
2010-01-05 18:09:31 +00:00