]> granicus.if.org Git - clang/log
clang
12 years agoImplement a new type trait __is_trivially_constructible(T, Args...)
Douglas Gregor [Fri, 24 Feb 2012 07:38:34 +0000 (07:38 +0000)]
Implement a new type trait __is_trivially_constructible(T, Args...)
that provides the behavior of the C++11 library trait
std::is_trivially_constructible<T, Args...>, which can't be
implemented purely as a library.

Since __is_trivially_constructible can have zero or more arguments, I
needed to add Yet Another Type Trait Expression Class, this one
handling arbitrary arguments. The next step will be to migrate
UnaryTypeTrait and BinaryTypeTrait over to this new, more general
TypeTrait class.

Fixes the Clang side of <rdar://problem/10895483> / PR12038.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151352 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake PathDiagnosticBuilder sensitive to varying LocationContexts, thus fixing a bug...
Ted Kremenek [Fri, 24 Feb 2012 07:12:52 +0000 (07:12 +0000)]
Make PathDiagnosticBuilder sensitive to varying LocationContexts, thus fixing a bug in the inlining diagnostics where the wrong location could be used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151349 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRemove stray path in test file.
Ted Kremenek [Fri, 24 Feb 2012 06:01:01 +0000 (06:01 +0000)]
Remove stray path in test file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151347 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReapply r151317, but when computing the PathDiagnostic profile and size keep into...
Ted Kremenek [Fri, 24 Feb 2012 06:00:00 +0000 (06:00 +0000)]
Reapply r151317, but when computing the PathDiagnostic profile and size keep into account the nested structure.  Also fix a problem with how
inlining impacted Plist diagnostics, and adjust some ranges in the Plist output due to richer information.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151346 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix test for non-block-default platforms.
David Blaikie [Fri, 24 Feb 2012 04:20:32 +0000 (04:20 +0000)]
Fix test for non-block-default platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151343 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert r151317 - Rework PathDiagnostics creation.. - to appease buildbots.
Chad Rosier [Fri, 24 Feb 2012 02:06:33 +0000 (02:06 +0000)]
Revert r151317 - Rework PathDiagnostics creation.. - to appease buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151338 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[PCH] When keeping track of top-level decls for "targeted deserialization"
Argyrios Kyrtzidis [Fri, 24 Feb 2012 01:12:38 +0000 (01:12 +0000)]
[PCH] When keeping track of top-level decls for "targeted deserialization"
make sure we don't mistake ParmVarDecls for top-level decls.

Fixes rdar://10920009.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151330 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRework PathDiagnostic creation so that call stacks are captured by a nested PathDiagn...
Ted Kremenek [Fri, 24 Feb 2012 00:38:56 +0000 (00:38 +0000)]
Rework PathDiagnostic creation so that call stacks are captured by a nested PathDiagnosticCallPiece.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151317 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd an ivar test for modern objc abi translator.
Fariborz Jahanian [Fri, 24 Feb 2012 00:34:58 +0000 (00:34 +0000)]
Add an ivar test for modern objc abi translator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151316 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake test works with FileCheck.
Fariborz Jahanian [Fri, 24 Feb 2012 00:29:20 +0000 (00:29 +0000)]
Make test works with FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151314 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReapply r151172 - Unwind path cleanup for array new list initializers - with a
Chad Rosier [Fri, 24 Feb 2012 00:13:55 +0000 (00:13 +0000)]
Reapply r151172 - Unwind path cleanup for array new list initializers - with a
test case that only runs on debug builds.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151311 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoHandle "#pragma GCC visibility" in a few more places. Switch over "#pragma pack...
Eli Friedman [Thu, 23 Feb 2012 23:47:16 +0000 (23:47 +0000)]
Handle "#pragma GCC visibility" in a few more places.  Switch over "#pragma pack" to use the same handling that gcc does.  Fixes <rdar://problem/10871094> and <rdar://problem/10893316>.

(Hopefully, common usage of these pragmas isn't irregular enough to break our current handling.  Doug has ideas for a more crazy approach if necessary.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151307 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoModernize some code which processes CastExprs to use CastKinds. No intended function...
Eli Friedman [Thu, 23 Feb 2012 23:04:32 +0000 (23:04 +0000)]
Modernize some code which processes CastExprs to use CastKinds.  No intended functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151298 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] KeyChainAPI: unique the leaks by allocation site.
Anna Zaks [Thu, 23 Feb 2012 22:53:29 +0000 (22:53 +0000)]
[analyzer] KeyChainAPI: unique the leaks by allocation site.
(Very similar to the previous change in malloc.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151297 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-c++: Type of an objc string literal is NSString, not 'id'.
Fariborz Jahanian [Thu, 23 Feb 2012 22:51:36 +0000 (22:51 +0000)]
objective-c++: Type of an objc string literal is NSString, not 'id'.
// rdar://10907410

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151296 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTurned on support for __declspecs: noreturn, noinline, nothrow and naked in MS compat...
Aaron Ballman [Thu, 23 Feb 2012 22:46:33 +0000 (22:46 +0000)]
Turned on support for __declspecs: noreturn, noinline, nothrow and naked in MS compatibility mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151295 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPull the OpaqueValueExpr's source expression into its constructor, so
Douglas Gregor [Thu, 23 Feb 2012 22:17:26 +0000 (22:17 +0000)]
Pull the OpaqueValueExpr's source expression into its constructor, so
that we can correctly compute value-dependence of the OVE.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151291 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUpdate test for r151288
Jim Grosbach [Thu, 23 Feb 2012 22:12:53 +0000 (22:12 +0000)]
Update test for r151288

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151290 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoARM: enable the integrated assembler by default for Darwin.
Jim Grosbach [Thu, 23 Feb 2012 21:55:04 +0000 (21:55 +0000)]
ARM: enable the integrated assembler by default for Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151288 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Malloc: unique leak reports by allocation site.
Anna Zaks [Thu, 23 Feb 2012 21:38:21 +0000 (21:38 +0000)]
[analyzer] Malloc: unique leak reports by allocation site.

When we find two leak reports with the same allocation site, report only
one of them.

Provide a helper method to BugReporter to facilitate this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151287 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Add CString checks to the release notes.
Anna Zaks [Thu, 23 Feb 2012 21:38:14 +0000 (21:38 +0000)]
[analyzer] Add CString checks to the release notes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151286 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[libclang] Make sure that all top-level decls in a @implementation are
Argyrios Kyrtzidis [Thu, 23 Feb 2012 21:11:20 +0000 (21:11 +0000)]
[libclang] Make sure that all top-level decls in a @implementation are
marked as such.

Previously we missed tag declarations; fixes rdar://10902015

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151283 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTest is fixed.
Fariborz Jahanian [Thu, 23 Feb 2012 20:43:56 +0000 (20:43 +0000)]
Test is fixed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151280 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoXFAIL test until I figure out how to make test pass on different platforms.
Fariborz Jahanian [Thu, 23 Feb 2012 20:22:21 +0000 (20:22 +0000)]
XFAIL test until I figure out how to make test pass on different platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151277 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago* tgmath_logb.patch implements the missing logb function (see C99 standard 7.22,...
Howard Hinnant [Thu, 23 Feb 2012 20:22:10 +0000 (20:22 +0000)]
* tgmath_logb.patch implements the missing logb function (see C99 standard 7.22, paragraph 5). * tgmath_fabs_complex.patch corrects the return types for the complex fabs functions. These must be non-complex float/double/long double (see C99 standard 7.22, paragraph 4 and 7.3.8.1).  Patch contributed by Kristof Beyls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151276 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoChange test again so it passes in build-bot until I can figure out what is
Fariborz Jahanian [Thu, 23 Feb 2012 20:07:38 +0000 (20:07 +0000)]
Change test again so it passes in build-bot until I can figure out what is
going on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151275 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agofix test for patch in r151268.
Fariborz Jahanian [Thu, 23 Feb 2012 18:57:03 +0000 (18:57 +0000)]
fix test for patch in r151268.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151272 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoActually remove the duplicated elements from the vector.
Benjamin Kramer [Thu, 23 Feb 2012 18:35:56 +0000 (18:35 +0000)]
Actually remove the duplicated elements from the vector.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151270 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-c default synthesis. classes which adopt protocol properties
Fariborz Jahanian [Thu, 23 Feb 2012 18:21:25 +0000 (18:21 +0000)]
objective-c default synthesis. classes which adopt protocol properties
must still auto synthesize those propeties which have been redeclared
in the class. // rdar://10907410

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151268 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix indentation
Douglas Gregor [Thu, 23 Feb 2012 17:54:00 +0000 (17:54 +0000)]
Fix indentation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151264 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoNote that lambda expressions are available in the release notes for 3.1
Douglas Gregor [Thu, 23 Feb 2012 17:51:51 +0000 (17:51 +0000)]
Note that lambda expressions are available in the release notes for 3.1

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151263 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReplace a use of hasTrivialDefaultConstructor() with the appropriate
Douglas Gregor [Thu, 23 Feb 2012 17:07:43 +0000 (17:07 +0000)]
Replace a use of hasTrivialDefaultConstructor() with the appropriate
isTrivial() call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151259 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReplace some DenseSets with SmallPtrSets. Apart from the "small" optimization, the...
Benjamin Kramer [Thu, 23 Feb 2012 16:06:01 +0000 (16:06 +0000)]
Replace some DenseSets with SmallPtrSets. Apart from the "small" optimization, the current implementation is also a denser.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151257 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUnique CXXBasePath decls with the SmallVector/pod_sort/std::unique idiom instead...
Benjamin Kramer [Thu, 23 Feb 2012 15:18:31 +0000 (15:18 +0000)]
Unique CXXBasePath decls with the SmallVector/pod_sort/std::unique idiom instead of employing a wasteful std::set.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151255 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoReplace the std::map in the init list checker with a DenseMap to reduce malloc thrashing.
Benjamin Kramer [Thu, 23 Feb 2012 14:48:40 +0000 (14:48 +0000)]
Replace the std::map in the init list checker with a DenseMap to reduce malloc thrashing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151254 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoPR12067: When emitting an evaluated constant structure in C++11 mode, don't
Richard Smith [Thu, 23 Feb 2012 08:33:23 +0000 (08:33 +0000)]
PR12067: When emitting an evaluated constant structure in C++11 mode, don't
forget the vptrs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151245 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSeriously, are injected-class-names that hard?
Douglas Gregor [Thu, 23 Feb 2012 07:44:18 +0000 (07:44 +0000)]
Seriously, are injected-class-names that hard?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151241 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoProvide the __is_trivially_assignable type trait, which provides
Douglas Gregor [Thu, 23 Feb 2012 07:33:15 +0000 (07:33 +0000)]
Provide the __is_trivially_assignable type trait, which provides
compiler support for the std::is_trivially_assignable library type
trait.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151240 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoClang supports lambdas.
Douglas Gregor [Thu, 23 Feb 2012 05:44:09 +0000 (05:44 +0000)]
Clang supports lambdas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151239 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTwo fixes to how we compute visibility:
Rafael Espindola [Thu, 23 Feb 2012 04:17:32 +0000 (04:17 +0000)]
Two fixes to how we compute visibility:

* Handle some situations where we should never make a decl more visible,
  even when merging in an explicit visibility.

* Handle attributes in members of classes that are explicitly specialized.

Thanks Nico for the report and testing, Eric for the initial review, and dgregor
for the awesome test27 :-)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151236 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTweak C++ status table:
Douglas Gregor [Thu, 23 Feb 2012 03:10:24 +0000 (03:10 +0000)]
Tweak C++ status table:
  - Apparently, SVN is yellow
  - Note that initializer lists are "in progress"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151232 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoClang now supports lambda expressions.
Douglas Gregor [Thu, 23 Feb 2012 03:02:32 +0000 (03:02 +0000)]
Clang now supports lambda expressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151231 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTry to handle qualifiers more consistently for array InitListExprs. Fixes <rdar...
Eli Friedman [Thu, 23 Feb 2012 02:25:10 +0000 (02:25 +0000)]
Try to handle qualifiers more consistently for array InitListExprs.  Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.

(I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151229 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUpdate parser's disambiguation to cope with braced function-style casts in
Richard Smith [Thu, 23 Feb 2012 01:36:12 +0000 (01:36 +0000)]
Update parser's disambiguation to cope with braced function-style casts in
C++11, and with braced-init-list initializers in conditions. This exposed an
ambiguity with enum underlying types versus bitfields, which we resolve by
treating 'enum E : T {' as always defining an enumeration (even if it would
only successfully parse as a bitfield). This appears to be g++ compatible.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151227 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTurned on support for __declspec(deprecated) in MS compatibility mode.
Aaron Ballman [Thu, 23 Feb 2012 01:19:31 +0000 (01:19 +0000)]
Turned on support for __declspec(deprecated) in MS compatibility mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151225 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Invalidate the region passed to pthread_setspecific() call.
Anna Zaks [Thu, 23 Feb 2012 01:05:27 +0000 (01:05 +0000)]
[analyzer] Invalidate the region passed to pthread_setspecific() call.

Make this call an exception in ExprEngine::invalidateArguments:
'int pthread_setspecific(ptheread_key k, const void *)' stores
a value into thread local storage. The value can later be retrieved
with 'void *ptheread_getspecific(pthread_key)'. So even thought the
parameter is 'const void *', the region escapes through the
call.

(Here we just blacklist the call in the ExprEngine's default
logic. Another option would be to add a checker which evaluates
the call and triggers the call to invalidate regions.)

Teach the Malloc Checker, which treats all system calls as safe about
the API.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151220 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTweak release note comments for checker build.
Ted Kremenek [Thu, 23 Feb 2012 00:48:17 +0000 (00:48 +0000)]
Tweak release note comments for checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151219 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUpdate checker build to checker-261.
Ted Kremenek [Thu, 23 Feb 2012 00:47:09 +0000 (00:47 +0000)]
Update checker build to checker-261.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151218 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd a quick TODO.
Eric Christopher [Thu, 23 Feb 2012 00:43:12 +0000 (00:43 +0000)]
Add a quick TODO.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151217 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFold debug scope emission into the cleanup scope.
Eric Christopher [Thu, 23 Feb 2012 00:43:07 +0000 (00:43 +0000)]
Fold debug scope emission into the cleanup scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151216 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoanother test for modern ivar access rewrite.
Fariborz Jahanian [Wed, 22 Feb 2012 22:32:05 +0000 (22:32 +0000)]
another test for modern ivar access rewrite.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151208 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert r151172: Unwind path cleanup for array new list initializers.
Chad Rosier [Wed, 22 Feb 2012 21:36:06 +0000 (21:36 +0000)]
Revert r151172: Unwind path cleanup for array new list initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151203 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomore tests for modern objc translator.
Fariborz Jahanian [Wed, 22 Feb 2012 21:13:49 +0000 (21:13 +0000)]
more tests for modern objc translator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151201 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoImprove placement of clang crash diagnostics section.
Chad Rosier [Wed, 22 Feb 2012 20:26:10 +0000 (20:26 +0000)]
Improve placement of clang crash diagnostics section.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151192 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Malloc cleanup:
Anna Zaks [Wed, 22 Feb 2012 19:24:52 +0000 (19:24 +0000)]
[analyzer] Malloc cleanup:
 - We should not evaluate strdup in the Malloc Checker, it's the job of
CString checker, so just update the RefState to reflect allocated
memory.

- Refactor to reduce LOC: remove some wrapper auxiliary functions, make
all functions return the state and add the transition in one place
(instead of in each auxiliary function).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151188 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRevert part of r148839 and keep DefaultTargetTriple in the form adjusted
Joerg Sonnenberger [Wed, 22 Feb 2012 19:15:16 +0000 (19:15 +0000)]
Revert part of r148839 and keep DefaultTargetTriple in the form adjusted
by -target and similar options. As discussed in PR 12026, the change
broke support for target-prefixed tools, i.e. calling x86_64--linux-ld
when compiling for x86_64--linux. Improve the test cases added
originally in r149083 to not require execution, just executable files.
Document the hack with appropiate FIXME comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151185 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd clang crash diagnostic info and associated flags to Clang user manual.
Chad Rosier [Wed, 22 Feb 2012 19:14:46 +0000 (19:14 +0000)]
Add clang crash diagnostic info and associated flags to Clang user manual.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151184 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUpdate set-xcode-analyzer to work with Xcode repackaging in Xcode 4.3
Ted Kremenek [Wed, 22 Feb 2012 18:44:35 +0000 (18:44 +0000)]
Update set-xcode-analyzer to work with Xcode repackaging in Xcode 4.3

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151179 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdd new driver warning from r151174 to a warning group. Please let me know if this...
Chad Rosier [Wed, 22 Feb 2012 18:18:48 +0000 (18:18 +0000)]
Add new driver warning from r151174 to a warning group.  Please let me know if this isn't the appropriate grouping.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151177 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objc translator. more writing of modern ivar access
Fariborz Jahanian [Wed, 22 Feb 2012 18:13:25 +0000 (18:13 +0000)]
modern objc translator. more writing of modern ivar access
abi.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151176 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[driver] Add a warning for when -mcpu= is specified without an argument. There
Chad Rosier [Wed, 22 Feb 2012 17:55:22 +0000 (17:55 +0000)]
[driver] Add a warning for when -mcpu= is specified without an argument.  There
are likely many other OPT_xxxx_EQ options that could/should be added here.
rdar://10704648

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151174 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDoug's review comments.
Sebastian Redl [Wed, 22 Feb 2012 17:38:04 +0000 (17:38 +0000)]
Doug's review comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151173 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUnwind path cleanup for array new list initializers.
Sebastian Redl [Wed, 22 Feb 2012 17:37:59 +0000 (17:37 +0000)]
Unwind path cleanup for array new list initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151172 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoCodeGen for array new list initializers. Doesn't correctly clean up in the face of...
Sebastian Redl [Wed, 22 Feb 2012 17:37:52 +0000 (17:37 +0000)]
CodeGen for array new list initializers. Doesn't correctly clean up in the face of exceptions yet.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151171 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoTeach overload resolution to prefer user-defined conversion via a
Douglas Gregor [Wed, 22 Feb 2012 17:32:19 +0000 (17:32 +0000)]
Teach overload resolution to prefer user-defined conversion via a
lambda closure type's function pointer conversion over user-defined
conversion via a lambda closure type's block pointer conversion,
always. This is a preference for more-standard code (since blocks
are an extension)  and a nod to efficiency, since function pointers
don't require any memory management. Fixes PR12063.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151170 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix parsing and processing initializer lists in return statements and as direct membe...
Sebastian Redl [Wed, 22 Feb 2012 10:50:08 +0000 (10:50 +0000)]
Fix parsing and processing initializer lists in return statements and as direct member initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151155 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWarn about non-standard format strings (pr12017)
Hans Wennborg [Wed, 22 Feb 2012 10:17:01 +0000 (10:17 +0000)]
Warn about non-standard format strings (pr12017)

This adds the -Wformat-non-standard flag (off by default,
enabled by -pedantic), which warns about non-standard
things in format strings (such as the 'q' length modifier,
the 'S' conversion specifier, etc.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151154 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMore ArrayRef-ification of methods.
Bill Wendling [Wed, 22 Feb 2012 09:51:33 +0000 (09:51 +0000)]
More ArrayRef-ification of methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151152 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoArrayRef-icize the function arguments.
Bill Wendling [Wed, 22 Feb 2012 09:38:11 +0000 (09:38 +0000)]
ArrayRef-icize the function arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151151 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoUse an ArrayRef when we can instead of passing in a SmallVectorImpl reference.
Bill Wendling [Wed, 22 Feb 2012 09:30:11 +0000 (09:30 +0000)]
Use an ArrayRef when we can instead of passing in a SmallVectorImpl reference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151150 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoThrow away stray CXXDefaultArgExprs. Fixes PR12061.
Sebastian Redl [Wed, 22 Feb 2012 09:07:21 +0000 (09:07 +0000)]
Throw away stray CXXDefaultArgExprs. Fixes PR12061.

I think there's a deeper problem here in the way TransformCXXConstructExpr works, but I won't tackle it now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151146 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoIn -fdelayed-template-parsing mode, reenter every scope when late parsing a templated...
Francois Pichet [Wed, 22 Feb 2012 08:25:53 +0000 (08:25 +0000)]
In -fdelayed-template-parsing mode, reenter every scope when late parsing a templated function; (Not just the template parameter scope as previously). Also enter the scope stack in the correct order.

Otherwise this breaks some invariant during name lookup especially when dealing with shadowed declaration

Fix PR11931.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151140 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAccept braced-init-lists in conditions, and, in passing, dramatically improve
Richard Smith [Wed, 22 Feb 2012 06:49:09 +0000 (06:49 +0000)]
Accept braced-init-lists in conditions, and, in passing, dramatically improve
the diagnostic for using a parenthesized direct-initializer in a condition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151137 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake sure null initialization in arrays works correctly with ARC types. <rdar:/...
Eli Friedman [Wed, 22 Feb 2012 05:38:59 +0000 (05:38 +0000)]
Make sure null initialization in arrays works correctly with ARC types.  <rdar://problem/10907547>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151133 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoGenerate an AST for the conversion from a lambda closure type to a
Douglas Gregor [Wed, 22 Feb 2012 05:02:47 +0000 (05:02 +0000)]
Generate an AST for the conversion from a lambda closure type to a
block pointer that returns a block literal which captures (by copy)
the lambda closure itself. Some aspects of the block literal are left
unspecified, namely the capture variable (which doesn't actually
exist) and the body (which will be filled in by IRgen because it can't
be written as an AST).

Because we're switching to this model, this patch also eliminates
tracking the copy-initialization expression for the block capture of
the conversion function, since that information is now embedded in the
synthesized block literal. -1 side tables FTW.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151131 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoImprove diagnostics a bit for bad member initializers, and fix an obscure bug involvi...
Eli Friedman [Wed, 22 Feb 2012 04:49:04 +0000 (04:49 +0000)]
Improve diagnostics a bit for bad member initializers, and fix an obscure bug involving packs.  Fixes PR12049.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151130 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agotest/CodeGenCXX/thiscall-struct-return.cpp: Relax expressions for -Asserts.
NAKAMURA Takumi [Wed, 22 Feb 2012 03:36:54 +0000 (03:36 +0000)]
test/CodeGenCXX/thiscall-struct-return.cpp: Relax expressions for -Asserts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151126 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Malloc checker: mark 'strdup' and 'strndup' as allocators.
Anna Zaks [Wed, 22 Feb 2012 03:14:20 +0000 (03:14 +0000)]
[analyzer] Malloc checker: mark 'strdup' and 'strndup' as allocators.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151124 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAdding support for Microsoft's thiscall calling convention. Clang side of the patch.
Aaron Ballman [Wed, 22 Feb 2012 03:04:13 +0000 (03:04 +0000)]
Adding support for Microsoft's thiscall calling convention.  Clang side of the patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151122 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Malloc: fix another false positive.
Anna Zaks [Wed, 22 Feb 2012 02:36:01 +0000 (02:36 +0000)]
[analyzer] Malloc: fix another false positive.
, when we return a symbol reachable to the malloced one via pointer
arithmetic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151121 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[analyzer] Change naming in bug reports "tainted" -> "untrusted"
Anna Zaks [Wed, 22 Feb 2012 02:35:58 +0000 (02:35 +0000)]
[analyzer] Change naming in bug reports "tainted" -> "untrusted"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151120 91177308-0d34-0410-b5e6-96231b3b80d8

12 years ago[libclang] Index the field references of a designated initializer, rdar://10906206
Argyrios Kyrtzidis [Wed, 22 Feb 2012 02:10:41 +0000 (02:10 +0000)]
[libclang] Index the field references of a designated initializer, rdar://10906206

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151118 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoImplement C++11 [expr.call]p11: If the operand to a decltype-specifier is a
Richard Smith [Wed, 22 Feb 2012 02:04:18 +0000 (02:04 +0000)]
Implement C++11 [expr.call]p11: If the operand to a decltype-specifier is a
function call (or a comma expression with a function call on its right-hand
side), possibly parenthesized, then the return type is not required to be
complete and a temporary is not bound. Other subexpressions inside a decltype
expression do not get this treatment.

This is implemented by deferring the relevant checks for all calls immediately
within a decltype expression, then, when the expression is fully-parsed,
checking the relevant constraints and stripping off any top-level temporary
binding.

Deferring the completion of the return type exposed a bug in overload
resolution where completion of the argument types was not attempted, which
is also fixed by this change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151117 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix typo correction of template arguments to once again allow type names.
Kaelyn Uhrain [Wed, 22 Feb 2012 01:03:07 +0000 (01:03 +0000)]
Fix typo correction of template arguments to once again allow type names.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151112 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoProvide a way to disable auto-generation of preprocessed files during clang
Chad Rosier [Wed, 22 Feb 2012 00:30:39 +0000 (00:30 +0000)]
Provide a way to disable auto-generation of preprocessed files during clang
crash.  This can speedup the process of generating a delta reduced test case.
rdar://10905465

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151109 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agomodern objc translator: fixes a bug where a class declaration with not
Fariborz Jahanian [Tue, 21 Feb 2012 23:58:41 +0000 (23:58 +0000)]
modern objc translator: fixes a bug where a class declaration with not
any implementation in tu was not being translated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151106 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoobjective-c modern translator. accessing ivars using modern abi - wip.
Fariborz Jahanian [Tue, 21 Feb 2012 23:46:48 +0000 (23:46 +0000)]
objective-c modern translator. accessing ivars using modern abi - wip.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151103 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoMake sure Stmt::dump() is included in libclang.
Argyrios Kyrtzidis [Tue, 21 Feb 2012 23:41:58 +0000 (23:41 +0000)]
Make sure Stmt::dump() is included in libclang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151102 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoIn the conflict between C++11 [expr.prim.general]p4, which declares
Douglas Gregor [Tue, 21 Feb 2012 22:51:27 +0000 (22:51 +0000)]
In the conflict between C++11 [expr.prim.general]p4, which declares
that 'this' can be used in the brace-or-equal-initializer of a
non-static data member, and C++11 [expr.prim.lambda]p9, which says
that lambda expressions not in block scope can have no captures, side
fully with C++11 [expr.prim.general]p4 by allowing 'this' to be
captured within these initializers. This seems to be the intent of
non-static data member initializers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151101 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoFix a crash in the diangostic code in EvalConstant. PR12043.
Eli Friedman [Tue, 21 Feb 2012 22:41:33 +0000 (22:41 +0000)]
Fix a crash in the diangostic code in EvalConstant.  PR12043.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151100 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoNo need to go to object file, -emit-llvm is sufficient to see if clang
Eric Christopher [Tue, 21 Feb 2012 22:25:20 +0000 (22:25 +0000)]
No need to go to object file, -emit-llvm is sufficient to see if clang
itself crashes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151095 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoSkip testing the crtbegin.o, and resume using a single variable for the
Chandler Carruth [Tue, 21 Feb 2012 22:21:50 +0000 (22:21 +0000)]
Skip testing the crtbegin.o, and resume using a single variable for the
prefixes. It seems only crtbegin.o uses the strange formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151094 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoClean up, add some documentation, and make this test return to checking
Chandler Carruth [Tue, 21 Feb 2012 21:51:40 +0000 (21:51 +0000)]
Clean up, add some documentation, and make this test return to checking
the linker toolchainness a bit more thoroughly. It used to work this
way, but hit buildbot issues. Hopefully subsequent fixes have addressed
those problems, but I'll be watching the bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151090 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDon't crash on attempts to synthesize an invalid property.
John McCall [Tue, 21 Feb 2012 21:48:05 +0000 (21:48 +0000)]
Don't crash on attempts to synthesize an invalid property.
rdar://problem/10904479

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151089 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoRedirect the output to /dev/null. This prevents the output from cluttering
Richard Trieu [Tue, 21 Feb 2012 21:40:05 +0000 (21:40 +0000)]
Redirect the output to /dev/null.  This prevents the output from cluttering
up the build enviroment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151087 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoOnly pop the expression evaluation context corresponding to a lambda
Douglas Gregor [Tue, 21 Feb 2012 20:05:31 +0000 (20:05 +0000)]
Only pop the expression evaluation context corresponding to a lambda
expression after we've finished the function body of the corresponding
function call operator. Otherwise, ActOnFinishFunctionBody() will see
the (unfinished) evaluation context of the lambda expression
itself. Fixes PR12031.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151082 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoDon't assume that a valid expression for the first part of a for-statement
Richard Smith [Tue, 21 Feb 2012 20:01:35 +0000 (20:01 +0000)]
Don't assume that a valid expression for the first part of a for-statement
is non-null when diagnosing a broken attempt to write a for-range-statement.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151081 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoWhen calling a non variadic format function(vprintf, vscanf, NSLogv, …), warn if...
Jean-Daniel Dupas [Tue, 21 Feb 2012 20:00:53 +0000 (20:00 +0000)]
When calling a non variadic format function(vprintf, vscanf, NSLogv, …), warn if the format string argument is a parameter that is not itself declared as a format string with compatible format.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151080 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoImprove our handling of lambda expressions that occur within default
Douglas Gregor [Tue, 21 Feb 2012 19:11:17 +0000 (19:11 +0000)]
Improve our handling of lambda expressions that occur within default
arguments. There are two aspects to this:

  - Make sure that when marking the declarations referenced in a
  default argument, we don't try to mark local variables, both because
  it's a waste of time and because the semantics are wrong: we're not
  in a place where we could capture these variables again even if it
  did make sense.
  - When a lambda expression occurs in a default argument of a
  function template, make sure that the corresponding closure type is
  considered dependent, so that it will get properly instantiated. The
  second bit is a bit of a hack; to fix it properly, we may have to
  rearchitect our handling of default arguments, parsing them only
  after creating the function definition. However, I'd like to
  separate that work from the lambdas work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151076 91177308-0d34-0410-b5e6-96231b3b80d8

12 years agoAllow linux builds to take advantage of libunwind to get unwind.h if
Jeffrey Yasskin [Tue, 21 Feb 2012 16:20:12 +0000 (16:20 +0000)]
Allow linux builds to take advantage of libunwind to get unwind.h if
that's installed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151058 91177308-0d34-0410-b5e6-96231b3b80d8