]>
granicus.if.org Git - clang/log
Douglas Gregor [Wed, 14 Jan 2009 22:20:51 +0000 (22:20 +0000)]
Refactor name lookup.
This change refactors and cleans up our handling of name lookup with
LookupDecl. There are several aspects to this refactoring:
- The criteria for name lookup is now encapsulated into the class
LookupCriteria, which replaces the hideous set of boolean values
that LookupDecl currently has.
- The results of name lookup are returned in a new class
LookupResult, which can lazily build OverloadedFunctionDecls for
overloaded function sets (and, eventually, eliminate the need to
allocate member for OverloadedFunctionDecls) and contains a
placeholder for handling ambiguous name lookup (for C++).
- The primary entry points for name lookup are now LookupName (for
unqualified name lookup) and LookupQualifiedName (for qualified
name lookup). There is also a convenience function
LookupParsedName that handles qualified/unqualified name lookup
when given a scope specifier. Together, these routines are meant
to gradually replace the kludgy LookupDecl, but this won't happen
until after we have base class lookup (which forces us to cope
with ambiguities).
- Documented the heck out of name lookup. Experimenting a little
with using Doxygen's member groups to make some sense of the Sema
class. Feedback welcome!
- Fixes some lingering issues with name lookup for
nested-name-specifiers, which now goes through
LookupName/LookupQualifiedName.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62245
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 20:06:04 +0000 (20:06 +0000)]
CmpDriver: Allow over-ride of drivers to compare through env variables
(DRIVER_[AB]).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62242
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 19:42:31 +0000 (19:42 +0000)]
ccc: Finish main clang compiler argument translation.
- Still missing some odds and ends like -M.
- Also, we still need to do some translation and forwarding of
codegen options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62241
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 14 Jan 2009 19:39:53 +0000 (19:39 +0000)]
Patch to keep clang honest that it does not yet support
explicit return type on block literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62240
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 18:56:36 +0000 (18:56 +0000)]
Fix typo and spelling of -Wunused-macros.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62239
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 14 Jan 2009 18:02:48 +0000 (18:02 +0000)]
Test explicit constructor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 14 Jan 2009 15:45:31 +0000 (15:45 +0000)]
Introduce support for C++0x explicit conversion operators (N2437)
Small cleanup in the handling of user-defined conversions.
Also, implement an optimization when constructing a call. We avoid
recomputing implicit conversion sequences and instead use those
conversion sequences that we computed as part of overload resolution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62231
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 14 Jan 2009 07:06:32 +0000 (07:06 +0000)]
Add a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62214
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 03:31:16 +0000 (03:31 +0000)]
ccc: Darwin/Compiler: Improve gcc compat in use of -auxbase-strip.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62213
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 01:50:15 +0000 (01:50 +0000)]
ccc: Implement argument translation for clang.
- This is what ccc (old) currently handles.
- Clang accepts some more things that aren't getting forwarded...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62210
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 01:34:13 +0000 (01:34 +0000)]
ccc: Add hello.{cpp,m} tests.
- hello.cpp is XFAIL pending g++ emulation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62208
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 01:32:05 +0000 (01:32 +0000)]
ccc: Add -ccc-echo special option, and support pulling CCC_CLANG,
CCC_ECHO, and CCC_FALLBACK from environment as ccc (old) did.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62207
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 01:30:55 +0000 (01:30 +0000)]
ccc: Use Clang/Compile for Objective-C files as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62206
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Wed, 14 Jan 2009 01:27:31 +0000 (01:27 +0000)]
Fix a subtle bug in DeclContext::DestroyDecls().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62205
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 01:03:36 +0000 (01:03 +0000)]
ccc: Add dummy Clang/Compile tool and use on Darwin/X86 for C files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 14 Jan 2009 00:42:25 +0000 (00:42 +0000)]
FunctionDecl::setParams() now uses the allocator associated with ASTContext to allocate the array of ParmVarDecl*'s.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62203
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 14 Jan 2009 00:06:14 +0000 (00:06 +0000)]
ccc: Darwin/Compile: Define __private_extern__ when building c++.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62200
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 13 Jan 2009 23:34:40 +0000 (23:34 +0000)]
Implemenent objective-c's NSObject attribute as a way of ddeclaraing c-type
objects as an objective-c object.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62197
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 23:19:12 +0000 (23:19 +0000)]
PTH:
- Use canonical FileID when using getSpelling() caching. This
addresses some cache misses we were seeing with -fsyntax-only on
Cocoa.h
- Added Preprocessor::getPhysicalCharacterAt() utility method for
clients to grab the first character at a specified sourcelocation.
This uses the PTH spelling cache.
- Modified Sema::ActOnNumericConstant() to use
Preprocessor::getPhysicalCharacterAt() instead of
SourceManager::getCharacterData() (to get PTH hits).
These changes cause -fsyntax-only to not page in any sources from
Cocoa.h. We see a speedup of 27%.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62193
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 13 Jan 2009 23:10:51 +0000 (23:10 +0000)]
Permitting typedefs without a name is a Microsoft/GNU extension
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62192
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 22:16:45 +0000 (22:16 +0000)]
Fix corner cases in PTH getSpelling() binary search.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62187
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 22:05:50 +0000 (22:05 +0000)]
PTH: Fix remaining cases where the spelling cache in the PTH file was being missed when it shouldn't. This shaves another 7% off PTH time for -Eonly on Cocoa.h
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62186
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 21:11:28 +0000 (21:11 +0000)]
ccc: Fix a test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62183
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 13 Jan 2009 21:11:15 +0000 (21:11 +0000)]
use a slightly more sensible position for an array ref's "getExprLoc"
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62182
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 21:07:43 +0000 (21:07 +0000)]
ccc: Darwin: Implement some important general argument translations
for the Darwin tool chain.
- Ideally we would localize these to tool specific argument
processing but for now this matches gcc closely.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62181
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 13 Jan 2009 19:47:12 +0000 (19:47 +0000)]
Turn off some Destroy calls that are currenly causing double-destruction of ScopedDecls. We will re-enable this later, when we have time to fully solve the ownership issue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62175
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 18:51:26 +0000 (18:51 +0000)]
ccc: Allow internal tool chain specific argument translation.
- Pulled -Xarch processing into this.
- Get rid of manual creation of forwarding arg array.
- Use Darwin/CC1 instead of generic GCC cc1 on X86.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62172
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 13 Jan 2009 17:00:51 +0000 (17:00 +0000)]
Use the unqualified type for GCCs struct/union cast extension
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62170
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Tue, 13 Jan 2009 13:11:58 +0000 (13:11 +0000)]
DeclContext::KindTrait was not meant to be used outside of DeclContext::CastTo (causes compilation error on MSVC).
Add DeclContext::getDeclKind() and use that instead of DeclContext::KindTrait.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62164
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 07:39:45 +0000 (07:39 +0000)]
ccc: Bug fix, '-f...' should be part of the '-f' group.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62157
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 07:38:29 +0000 (07:38 +0000)]
Add simple tool for comparing drivers (hardcoded to gcc and xcc) which
support -###.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62156
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 06:44:28 +0000 (06:44 +0000)]
ccc: Darwin/Link also runs dsymutil in one very particular situation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62154
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 13 Jan 2009 06:25:33 +0000 (06:25 +0000)]
Print function parameters in DeclContextPrinter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62153
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 06:25:31 +0000 (06:25 +0000)]
ccc: Bug fix and gcc compatibility tweak.
- --gstabs only goes to Darwin/Assembler when dealing with an
assembly file from the command line.
- Relative placement of -o option for cc1 moves depending on
-fsyntax-only/-S, how quaint.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62152
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 05:54:38 +0000 (05:54 +0000)]
ccc: Add option groups.
- Simple mechanism for group together sets of options so the driver
can efficiently deal with them as a group (i.e., for forwarding -i*
to cc1).
- Use to finish off the major missing pieces of Darwin/CC1 support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62149
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Tue, 13 Jan 2009 05:48:52 +0000 (05:48 +0000)]
Warn when someone tries to pass a variable with a non-POD type to a varargs function/method/block.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62148
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 13 Jan 2009 05:10:00 +0000 (05:10 +0000)]
Fix argument-passing bugs in a call to object
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62147
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 04:51:51 +0000 (04:51 +0000)]
ccc: Darwin/CC1: Hardcode (for now) some -m options to match gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62146
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 04:05:40 +0000 (04:05 +0000)]
ccc: Allow host to over-ride default arch based on command line
arguments (e.g., -m32 and -m64).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62145
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 13 Jan 2009 03:26:38 +0000 (03:26 +0000)]
Improve c++ methods printing in DeclContextPrinter.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62143
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 13 Jan 2009 03:07:41 +0000 (03:07 +0000)]
add a fixme.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62142
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 13 Jan 2009 02:41:08 +0000 (02:41 +0000)]
Improve DeclContextPrinter: print enum name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62140
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 02:25:00 +0000 (02:25 +0000)]
Bug fix, __private_extern__ globals were always introducing a definition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62139
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 13 Jan 2009 01:49:57 +0000 (01:49 +0000)]
Add KillStruct to region store.
- put the killed region in the kill set.
- set its default value to unknown.
- removes all bindings for its subregions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62138
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 01:41:37 +0000 (01:41 +0000)]
Updated checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62137
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Tue, 13 Jan 2009 01:29:24 +0000 (01:29 +0000)]
Add an initial framework of a DeclContextPrinter. It can print DeclContext and
its Decls in indented format. An Example:
$ cat t.cpp
class A {
int a;
void f();
};
void A::f() {
a = 3;
}
$ clang -print-decl-contexts t.cpp
[translation unit] 0x9754d7c
<typedef> __builtin_va_list
[class] A 0x9753310
<class> A 0x975ce20
<field> a
<c++ method> f
<c++ ctor> A
<c++ ctor> A
<c++ method> operator=
<c++ dtor> ~A
[c++ method] f [[0x9753310]]
Some comments: '<>' indicates a declaration, '[]' indicates a definition, '[[
]]' displays the semantic DeclContext which is different from the lexical
DeclContext. The symbols printed can definitely be changed in the future.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62136
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 13 Jan 2009 01:18:13 +0000 (01:18 +0000)]
Patch to fix encoding of Enum bitfields in ObjC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62135
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 01:06:56 +0000 (01:06 +0000)]
This test now passes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62132
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 13 Jan 2009 01:04:40 +0000 (01:04 +0000)]
ccc: Darwin/CC1: Be bug compatible with gcc in a corner case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62131
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 01:04:21 +0000 (01:04 +0000)]
static analyzer: Handle casts from arrays to integers. This fixes PR 3297.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62130
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Tue, 13 Jan 2009 01:03:27 +0000 (01:03 +0000)]
Invert condition on branch (was causing RegionStore::ArrayToPointer to return 'unknown' on most cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62129
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 13 Jan 2009 00:52:54 +0000 (00:52 +0000)]
Add the proper restrictions on the left-hand argument of a built-in
assignment operator candidate (C++ [over.match.oper]p4).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62128
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 13 Jan 2009 00:11:19 +0000 (00:11 +0000)]
Make sure we don't name a constructor or destructor with a qualified
type. It leads to very weird errors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62124
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 12 Jan 2009 23:27:26 +0000 (23:27 +0000)]
Patch to implement code gen for aggrgate-valued property used
to access a field of its type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62123
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 12 Jan 2009 23:27:07 +0000 (23:27 +0000)]
Cleanup DeclContext::addDecl and DeclContext::insert interface, from Piotr Rak
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62122
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 12 Jan 2009 23:20:38 +0000 (23:20 +0000)]
Update C++ status and add a few more tests of overloading for member function calls
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62121
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 12 Jan 2009 23:09:55 +0000 (23:09 +0000)]
Fix test case (incomplete "expected-warning" line)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62119
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 12 Jan 2009 23:09:09 +0000 (23:09 +0000)]
Patch by Roman Divacky:
Extend string-literal checking for printf() format string to handle conditional
ternary operators where both sides are literals.
This fixes PR 3319: http://llvm.org/bugs/show_bug.cgi?id=3319
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62117
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 12 Jan 2009 22:49:54 +0000 (22:49 +0000)]
Fix crasher due to use-after-release: DeclContext now owns all ObjCMethodDecls, and shouldn't be released elsewhere.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62113
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 12 Jan 2009 22:49:06 +0000 (22:49 +0000)]
Implement support for anonymous structs and unions in C. Both C and
C++ handle anonymous structs/unions in the same way. Addresses several
bugs:
<rdar://problem/
6259534 >
<rdar://problem/
6481130 >
<rdar://problem/
6483159 >
The test case in PR clang/1750 now passes with -fsyntax-only, but
CodeGen for inline assembler still fails.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62112
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 22:19:59 +0000 (22:19 +0000)]
ccc: Bug fix, output can be NULL.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62108
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 12 Jan 2009 21:45:02 +0000 (21:45 +0000)]
retain/release checker:
- Refactor a bunch of logic in the retain/release checker, making it more
condense and easier to read.
- Add support for "Create" methods in the DiskArbitration framework
retain/release tests:
- Rename CFDate.m to retain-release.m, and move test from CFString.c to
retain-release.m
- Add DiskArbitration framework tests cases.
- Add/refine and few more retain/release GC test cases.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62106
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 21:44:10 +0000 (21:44 +0000)]
ccc: Even more Darwin/cc1 argument translation support.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62105
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 21:08:18 +0000 (21:08 +0000)]
(LLVM up) Match TargetData API change in LLVM TOT.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62101
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Mon, 12 Jan 2009 19:55:42 +0000 (19:55 +0000)]
Patch to supprt case of readonly property being
assigned to when it has user declared setter method
defined in the class implementation (but no declaration in
the class itself).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62098
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 19:36:35 +0000 (19:36 +0000)]
ccc: Add leading space in -### output to match gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62097
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 18:51:02 +0000 (18:51 +0000)]
ccc: (Darwin) More argument translation for Darwin/Compile tool.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62093
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Mon, 12 Jan 2009 18:45:55 +0000 (18:45 +0000)]
Properly set the scope of non-fields declared within a struct, union,
or enum to be outside that struct, union, or enum. Fixes several
regressions:
<rdar://problem/
6487662 >
<rdar://problem/
6487669 >
<rdar://problem/
6487684 >
<rdar://problem/
6487702 >
PR clang/3305
PR clang/3312
There is still some work to do in Objective-C++, but this requires
that each of the Objective-C entities (interfaces, implementations,
etc.) to be introduced into the context stack with
PushDeclContext/PopDeclContext. This will be a separate fix, later.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62091
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 17:53:19 +0000 (17:53 +0000)]
ccc: (Darwin) More argument translation for Darwin/Compile tool.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62089
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 09:23:15 +0000 (09:23 +0000)]
ccc: (Darwin) Start implementing argument translation for
Darwin/Compile tool.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62085
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 07:48:07 +0000 (07:48 +0000)]
ccc: When constructing a named output, only use base name (not full
path).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62083
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 07:45:49 +0000 (07:45 +0000)]
ccc: (Darwin) Move path resolution into ToolChain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62082
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 07:40:25 +0000 (07:40 +0000)]
ccc: Implement the rest of Darwin/Assembler argument translation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62081
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 05:02:38 +0000 (05:02 +0000)]
ccc: Implement macosx-version-min conditions (including a bug fix).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62079
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 04:21:12 +0000 (04:21 +0000)]
ccc: Generalize Darwin/Link tool based on Darwin version.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62078
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 03:33:58 +0000 (03:33 +0000)]
ccc: Support arguments which behave like linker inputs.
- Support comma joined options which magically turn into multiple
value arguments (e.g., -Wl,)
- Split out separate Arg::render routine for when an argument is
being rendered as an input (as opposed to in its original form).
- Add option flag for options which should be rendered without the
option when they are used as an input (e.g., -Xlinker or -o).
- Support -weak-l..., -weak_framework, and -weak_library.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62075
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 12 Jan 2009 02:24:21 +0000 (02:24 +0000)]
ccc: (Darwin) Pass -ObjC to linker if -ObjC, -ObjC++ or -fobjc is
present.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62070
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 12 Jan 2009 02:22:13 +0000 (02:22 +0000)]
Handle multi-value inputs
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62069
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Mon, 12 Jan 2009 02:15:29 +0000 (02:15 +0000)]
Make sure to initialize the ConstraintInfo to 0
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62068
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 12 Jan 2009 00:21:19 +0000 (00:21 +0000)]
some more minor asqualtype bugs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62064
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 12 Jan 2009 00:10:42 +0000 (00:10 +0000)]
improve some more is*Type predicates to look through asqualtypes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62063
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 12 Jan 2009 00:08:58 +0000 (00:08 +0000)]
testcase that works now with r62061
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62062
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 11 Jan 2009 23:59:49 +0000 (23:59 +0000)]
simplify these predicates a bit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62061
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nuno Lopes [Sun, 11 Jan 2009 23:22:37 +0000 (23:22 +0000)]
make ScalarExprEmitter::EmitCompare() emit the expression with the correct type instead of always zext it to an int
this fixes codegen of simple exprs in C++ like 'if (x != 0)'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62060
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 11 Jan 2009 23:13:15 +0000 (23:13 +0000)]
ccc: Add fairly complete argument translation for Darwin link step.
- Some things are still hardcoded, and macosx-version-min comparison
isn't implemented, but otherwise this very closely matches gcc.
- The one exception is that arguments (like -framework or -Wl,) which are
treated as linker inputs instead of options are not being
forwarded yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62059
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 11 Jan 2009 22:42:24 +0000 (22:42 +0000)]
ccc: Add several convenience methods for argument translation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62057
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 11 Jan 2009 22:12:37 +0000 (22:12 +0000)]
ccc: Add and name a host of arguments.
- Also, fix bug in MultipleValuesOption which was accepting joined
arguments.
- Add ArgList::getArgs, provides iterator over all arg instances for a
given option.
- Option definition is very much in need of cleaning...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62054
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 11 Jan 2009 22:06:22 +0000 (22:06 +0000)]
ccc: Give the Host an opportunity to switch ToolChains when binding
archs (as a driver driver).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62053
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sun, 11 Jan 2009 22:03:55 +0000 (22:03 +0000)]
ccc: Print -### output on stderr to match gcc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62052
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 11 Jan 2009 21:23:27 +0000 (21:23 +0000)]
More inline asm fixes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62049
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 11 Jan 2009 19:48:19 +0000 (19:48 +0000)]
make paste avoidance avoid pasting digraphs and :: only when digraphs or c++ is enabled
respectively. Inspired by a patch by Dan Villiom Podlaski Christiansen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62044
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 11 Jan 2009 19:46:50 +0000 (19:46 +0000)]
Handle readwrite constraints correctly
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62043
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 11 Jan 2009 19:40:10 +0000 (19:40 +0000)]
Forgot to commit this
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62042
91177308 -0d34-0410-b5e6-
96231b3b80d8
Anders Carlsson [Sun, 11 Jan 2009 19:32:54 +0000 (19:32 +0000)]
Use a common function for emitting asm inputs and remove a FIXME
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62041
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 11 Jan 2009 19:28:34 +0000 (19:28 +0000)]
this patch "adds support for specifying multiple dependancy targets using ‘-MT’. Using this patch, I was able to use ‘ccc’ as C compiler for the few C files in LLVM. In my brief testing, the output remains identical to that of GCC."
Patch by Dan Villiom Podlaski Christiansen!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62040
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 11 Jan 2009 13:39:06 +0000 (13:39 +0000)]
Fix operator precedence.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62038
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sun, 11 Jan 2009 12:47:58 +0000 (12:47 +0000)]
Convert property implementation to DeclContext::addDecl().
This completes the ObjCContainerDecl AST cleanup (for now).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62037
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sun, 11 Jan 2009 01:06:09 +0000 (01:06 +0000)]
A few property related cleanups to ObjCContainerDecl AST.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62034
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Sun, 11 Jan 2009 00:38:46 +0000 (00:38 +0000)]
Convert some more actions to smart pointers.
No performance regression in my basic test.
Also fixed a type error in ActOnFinishSwitchStmt's arguments (body is a stmt).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62032
91177308 -0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Sat, 10 Jan 2009 22:55:25 +0000 (22:55 +0000)]
Fix a misleading comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62031
91177308 -0d34-0410-b5e6-
96231b3b80d8