]> granicus.if.org Git - clang/log
clang
12 years ago[clang.py] Followup to TranslationUnit refactor
Gregory Szorc [Sat, 12 May 2012 20:49:13 +0000 (20:49 +0000)]
[clang.py] Followup to TranslationUnit refactor

* Document index argument in TranslationUnit.from_source
* Add numeric error code to TranslationUnitSaveError string representation
* Use None instead of [] for default argument value in
  TranslationUnit.codeComplete

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

12 years agoAdd Python binding info to release notes
Gregory Szorc [Sat, 12 May 2012 20:45:56 +0000 (20:45 +0000)]
Add Python binding info to release notes

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

12 years ago[analyzer] Test case: p->x is the same as p[0].x. (PR7297)
Jordy Rose [Sat, 12 May 2012 17:32:59 +0000 (17:32 +0000)]
[analyzer] Test case: p->x is the same as p[0].x. (PR7297)

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

12 years agoOnly check NSArray/NSDictionary boxing method params once.
Jordy Rose [Sat, 12 May 2012 17:32:56 +0000 (17:32 +0000)]
Only check NSArray/NSDictionary boxing method params once.

Once we've found a "good" method, we don't need to check its argument types
again. (Even if we might have later found a "bad" method, we were already
caching the method we first looked up.)

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

12 years ago80-col violations and minor reformatting. No functionality change.
Jordy Rose [Sat, 12 May 2012 17:32:52 +0000 (17:32 +0000)]
80-col violations and minor reformatting. No functionality change.

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

12 years agoClean up ObjC boxing method checks by reducing duplicated code.
Jordy Rose [Sat, 12 May 2012 17:32:44 +0000 (17:32 +0000)]
Clean up ObjC boxing method checks by reducing duplicated code.

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

12 years agoRemove unused variable. Thanks to Dmitri Gribenko for noticing it.
Rafael Espindola [Sat, 12 May 2012 16:35:00 +0000 (16:35 +0000)]
Remove unused variable. Thanks to Dmitri Gribenko for noticing it.

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

12 years agoDon't crash on boxed strings when +stringWithUTF8String: is missing.
Jordy Rose [Sat, 12 May 2012 15:53:41 +0000 (15:53 +0000)]
Don't crash on boxed strings when +stringWithUTF8String: is missing.

Also, unify some diagnostics for boxed expressions that have the same form.

Fixes PR12804.

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

12 years ago[analyzer] RetainCountChecker: track ObjC boxed expression objects.
Jordy Rose [Sat, 12 May 2012 05:10:43 +0000 (05:10 +0000)]
[analyzer] RetainCountChecker: track ObjC boxed expression objects.

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

12 years agoTeach the parser to deal with multiple spellings for the same
Douglas Gregor [Fri, 11 May 2012 23:37:49 +0000 (23:37 +0000)]
Teach the parser to deal with multiple spellings for the same
attribute, rather than requiring multiple cases in consumers of this
information.

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

12 years ago[analyzer] Test variable modified types.
Anna Zaks [Fri, 11 May 2012 23:34:14 +0000 (23:34 +0000)]
[analyzer] Test variable modified types.

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

12 years ago[analyzer] Do not walk the types for call graph construction.
Anna Zaks [Fri, 11 May 2012 23:15:18 +0000 (23:15 +0000)]
[analyzer] Do not walk the types for call graph construction.

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

12 years ago[analyzer] Test objC boxing.
Anna Zaks [Fri, 11 May 2012 23:15:16 +0000 (23:15 +0000)]
[analyzer] Test objC boxing.

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

12 years ago[analyzer] Add buffer overflow test case.
Anna Zaks [Fri, 11 May 2012 23:15:11 +0000 (23:15 +0000)]
[analyzer] Add buffer overflow test case.

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

12 years agoMake sure that we recognize __attribute__((align)) as a synonym for
Douglas Gregor [Fri, 11 May 2012 23:01:43 +0000 (23:01 +0000)]
Make sure that we recognize __attribute__((align)) as a synonym for
__attribute__((aligned)). Fixes <rdar://problem/11435441>, a
regression I introduced in r156003. This is the narrow fix; a more
comprehensive fix is coming.

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

12 years agoWhen diagnosing inaccessible temporary destructors in decltype expressions, use
Richard Smith [Fri, 11 May 2012 22:20:10 +0000 (22:20 +0000)]
When diagnosing inaccessible temporary destructors in decltype expressions, use
the correct type and the correct source location in the diagnostic. Spotted by
Johannes Schaub!

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

12 years agoMerge branch 'format-string-braced-init'
Matt Beaumont-Gay [Fri, 11 May 2012 22:10:59 +0000 (22:10 +0000)]
Merge branch 'format-string-braced-init'

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

12 years agoCoerce byval aggregate arguments to integers whose size matches the integer
Akira Hatanaka [Fri, 11 May 2012 21:56:58 +0000 (21:56 +0000)]
Coerce byval aggregate arguments to integers whose size matches the integer
register size of the target architecture.

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

12 years agoThe Lexer constructor expects a source location at the start of the
Argyrios Kyrtzidis [Fri, 11 May 2012 21:39:18 +0000 (21:39 +0000)]
The Lexer constructor expects a source location at the start of the
file buffer, not at the start of lexing.

Fixes assertion hit in format diagnostics. rdar://11418366

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

12 years agoFix handling of vector return types.
Akira Hatanaka [Fri, 11 May 2012 21:01:17 +0000 (21:01 +0000)]
Fix handling of vector return types.

A vector should be returned via the hidden pointer argument except if its size
is equal to or smaller than 16-bytes and the target ABI is N32 or N64.

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

12 years agoHexagon V5 intrinsics support in clang.
Sirish Pande [Fri, 11 May 2012 19:39:08 +0000 (19:39 +0000)]
Hexagon V5 intrinsics support in clang.

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

12 years agoPR11857: When the wrong number of arguments are provided for a function
Richard Smith [Fri, 11 May 2012 05:16:41 +0000 (05:16 +0000)]
PR11857: When the wrong number of arguments are provided for a function
which expects exactly one argument, include the name of the argument in
the diagnostic text. Patch by Terry Long!

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

12 years agoAdd a test case for going through typedefs until we reach "BOOL", that NSAPI::isObjCT...
Argyrios Kyrtzidis [Fri, 11 May 2012 01:53:27 +0000 (01:53 +0000)]
Add a test case for going through typedefs until we reach "BOOL", that NSAPI::isObjCTypedef() is doing.

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

12 years agoFix a recent regression with the merging of format attributes.
Rafael Espindola [Fri, 11 May 2012 00:36:07 +0000 (00:36 +0000)]
Fix a recent regression with the merging of format attributes.

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

12 years agoFor final output files create them with mode 0664 to match other
Eric Christopher [Fri, 11 May 2012 00:10:07 +0000 (00:10 +0000)]
For final output files create them with mode 0664 to match other
compilers and expected defaults.

Part of rdar://11325849

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

12 years ago[objc] When boxing a BOOL/NSInteger/NSUInteger type, use the corresponding
Argyrios Kyrtzidis [Thu, 10 May 2012 23:12:03 +0000 (23:12 +0000)]
[objc] When boxing a BOOL/NSInteger/NSUInteger type, use the corresponding
numberWithBool:/numberWithInteger:/numberWithUnsignedInteger: NSNumber selectors.

rdar://11428703

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

12 years agoInclude line that was meant to be in my last commit.
Ted Kremenek [Thu, 10 May 2012 22:49:10 +0000 (22:49 +0000)]
Include line that was meant to be in my last commit.

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

12 years agoFix insidious RegionStore bug where we (a) didn't handle vector types and (b) had
Ted Kremenek [Thu, 10 May 2012 22:02:39 +0000 (22:02 +0000)]
Fix insidious RegionStore bug where we (a) didn't handle vector types and (b) had
a horrible bug in GetLazyBindings where we falsely appended a field suffix when traversing 3 or more
layers of lazy bindings.  I don't have a reduced test case yet; but I have added the original source
to an internal regression test suite.  I'll see about coming up with a reduced test case.

Fixes <rdar://problem/11405978> (for real).

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

12 years ago[analyzer] Exit early if constraint solver is given a non-integer symbol
Anna Zaks [Thu, 10 May 2012 21:49:52 +0000 (21:49 +0000)]
[analyzer] Exit early if constraint solver is given a non-integer symbol
to reason about.

As part of taint propagation, we now allow creation of non-integer
symbolic expressions like a cast from int to float.

Addresses PR12511 (radar://11215362).

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

12 years agoHexagon V5 FP support.
Sirish Pande [Thu, 10 May 2012 20:19:54 +0000 (20:19 +0000)]
Hexagon V5 FP support.

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

12 years agoDon't crash when using objc boxed expression with parsing error.
Argyrios Kyrtzidis [Thu, 10 May 2012 20:02:36 +0000 (20:02 +0000)]
Don't crash when using objc boxed expression with parsing error.

rdar://11426994

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

12 years agoWhen AST-dumping the ObjCBoxedExpr node, also print out what selector it chose.
Argyrios Kyrtzidis [Thu, 10 May 2012 20:02:31 +0000 (20:02 +0000)]
When AST-dumping the ObjCBoxedExpr node, also print out what selector it chose.

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

12 years agoProvide a man page for scan-build. Patch by James Lowden!
Ted Kremenek [Thu, 10 May 2012 19:10:47 +0000 (19:10 +0000)]
Provide a man page for scan-build.  Patch by James Lowden!

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

12 years ago[preprocessor] Make sure that MacroExpands callbacks are always in source order.
Argyrios Kyrtzidis [Thu, 10 May 2012 18:57:19 +0000 (18:57 +0000)]
[preprocessor] Make sure that MacroExpands callbacks are always in source order.

Fixes assertion hit in the preprocessing record. rdar://11426523

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

12 years agoTest for previously checked in patch.
Fariborz Jahanian [Thu, 10 May 2012 17:05:15 +0000 (17:05 +0000)]
Test for previously checked in patch.
// rdar://11374235

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

12 years agoFix an assertion hit when the serialized diagnostics writer receive a diagnostic
Argyrios Kyrtzidis [Thu, 10 May 2012 05:03:45 +0000 (05:03 +0000)]
Fix an assertion hit when the serialized diagnostics writer receive a diagnostic
from the frontend when the location is invalid and the SourceManager null.

Instead of keeping the SourceManager object in DiagnosticRenderer, propagate it
to the calls accordingly (as reference when it is expected to not be null, or pointer
when it may be null).
This effectively makes DiagnosticRenderer not tied to a specific SourceManager,
removing a hack from TextDiagnosticPrinter.

rdar://11386874

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

12 years agoWarn about visibility attributes in typedefs.
Rafael Espindola [Thu, 10 May 2012 03:01:34 +0000 (03:01 +0000)]
Warn about visibility attributes in typedefs.

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

12 years agoFix an old (2009) FIXME:
Rafael Espindola [Thu, 10 May 2012 02:50:16 +0000 (02:50 +0000)]
Fix an old (2009) FIXME:

// FIXME: This needs to happen before we merge declarations. Then,
// let attribute merging cope with attribute conflicts.

This was already being done for variables, but for functions we were merging
then first and then applying the attributes. To avoid duplicating merging
logic, some of the helpers in SemaDeclAttr.cpp become methods that can
handle merging two attributes in one decl or inheriting attributes from one
decl to another.

With this change we are now able to produce errors for variables with
incompatible visibility attributes or warn about unused dllimports in
variables.

This changes the attribute list iteration back to being in reverse source
code order, as that matches what decl merging does and avoids differentiating
the two cases is the merge*Attr methods.

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

12 years ago[analyzer] Do not highlight the range of the statement in case of leak.
Anna Zaks [Thu, 10 May 2012 01:37:40 +0000 (01:37 +0000)]
[analyzer] Do not highlight the range of the statement in case of leak.

We report a leak at a point a leaked variable is no longer accessible.
The statement that happens to be at that point is not relevant to the
leak diagnostic and, thus, should not be highlighted.

radar://11178519

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

12 years agoRecursiveASTVisitor:
Richard Smith [Wed, 9 May 2012 23:51:36 +0000 (23:51 +0000)]
RecursiveASTVisitor:

We don't create any declaration to mark the explicit instantiation of function
templates other than the instantiation itself, so visit that when traversing
the function template decl.

This is a temporary fix, pending the creation of a Decl node to represent the
explicit instantiation.

Patch by Daniel Jasper!

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

12 years agoobjective-c. Fixes a 'fixit' where location of
Fariborz Jahanian [Wed, 9 May 2012 21:49:29 +0000 (21:49 +0000)]
objective-c. Fixes a 'fixit' where location of
'*' on objective-c class name was misplaced.
// rdar://11311333

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

12 years agohopefully fix a bunch of ARM buildbot failures
Nuno Lopes [Wed, 9 May 2012 21:21:49 +0000 (21:21 +0000)]
hopefully fix a bunch of ARM buildbot failures

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

12 years agoPull some cases of initialization with self-reference warnings out of
Richard Trieu [Wed, 9 May 2012 21:08:22 +0000 (21:08 +0000)]
Pull some cases of initialization with self-reference warnings out of
-Wconditional-uninitialized into -Wuninitialized.

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

12 years agoPush the knowledge that we are parsing a type-id/type-name further into the
Richard Smith [Wed, 9 May 2012 20:55:26 +0000 (20:55 +0000)]
Push the knowledge that we are parsing a type-id/type-name further into the
parser, and use it to emit better diagnostics in cases where an identifer
can't be looked up as a type name.

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

12 years agoStop AltiVec parsing from going down the 'implicit int' codepath as part of its
Richard Smith [Wed, 9 May 2012 18:56:43 +0000 (18:56 +0000)]
Stop AltiVec parsing from going down the 'implicit int' codepath as part of its
normal parse for token sequences like 'vector pixel foo'. This incidentally also
fixes a couple of wrong-parse issues.

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

12 years agoRoll logic into a single if statement, per David's suggestion.
Chad Rosier [Wed, 9 May 2012 18:55:57 +0000 (18:55 +0000)]
Roll logic into a single if statement, per David's suggestion.

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

12 years agoUse the triple directly, rather then getTriple().
Chad Rosier [Wed, 9 May 2012 18:51:13 +0000 (18:51 +0000)]
Use the triple directly, rather then getTriple().

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

12 years agoPass a target triple explicitly to check platform specific macros definitions.
Simon Atanasyan [Wed, 9 May 2012 18:49:52 +0000 (18:49 +0000)]
Pass a target triple explicitly to check platform specific macros definitions.
That allows to run the tests on all platforms successfully.

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

12 years agoNow the proper fix for r156497. Sorry for the churn.
Chad Rosier [Wed, 9 May 2012 18:46:30 +0000 (18:46 +0000)]
Now the proper fix for r156497.  Sorry for the churn.

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

12 years agoMove the iOSVersionMin string to a header so as to avoid a dangling pointer.
Chad Rosier [Wed, 9 May 2012 18:37:26 +0000 (18:37 +0000)]
Move the iOSVersionMin string to a header so as to avoid a dangling pointer.

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

12 years agoFix -Wdelete-non-virtual-dtor in Tooling code.
David Blaikie [Wed, 9 May 2012 18:31:50 +0000 (18:31 +0000)]
Fix -Wdelete-non-virtual-dtor in Tooling code.

Also, add an anchor as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch

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

12 years agoUpdate test case for new default of 3.0
Chad Rosier [Wed, 9 May 2012 18:23:04 +0000 (18:23 +0000)]
Update test case for new default of 3.0

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

12 years agoImplement PPC64TargetCodeGenInfo.
Roman Divacky [Wed, 9 May 2012 18:22:46 +0000 (18:22 +0000)]
Implement PPC64TargetCodeGenInfo.

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

12 years agoARM: Support marking intrinsic definitions as 'unavailable'
Jim Grosbach [Wed, 9 May 2012 18:17:30 +0000 (18:17 +0000)]
ARM: Support marking intrinsic definitions as 'unavailable'

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

12 years ago[driver] Use the iOS target triple to infer the deployment target.
Chad Rosier [Wed, 9 May 2012 18:09:58 +0000 (18:09 +0000)]
[driver] Use the iOS target triple to infer the deployment target.
rdar://11409204

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

12 years ago[analyzer]Extend the available checks list and the release notes for 264
Anna Zaks [Wed, 9 May 2012 17:57:16 +0000 (17:57 +0000)]
[analyzer]Extend the available checks list and the release notes for 264

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

12 years agoIgnore a "generic" return value from getHostCPUName. <rdar://problem/11314502>
Bob Wilson [Wed, 9 May 2012 17:53:10 +0000 (17:53 +0000)]
Ignore a "generic" return value from getHostCPUName.  <rdar://problem/11314502>

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

12 years ago[libclang] Add a test for objc boxed expressions.
Argyrios Kyrtzidis [Wed, 9 May 2012 17:46:47 +0000 (17:46 +0000)]
[libclang] Add a test for objc boxed expressions.

rdar://11407754

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

12 years ago[analyzer] Simplify r156446, as per Ted's review.
Anna Zaks [Wed, 9 May 2012 17:23:15 +0000 (17:23 +0000)]
[analyzer] Simplify r156446, as per Ted's review.

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

12 years ago[analyzer] Allow pointers to escape through selector callbacks.
Anna Zaks [Wed, 9 May 2012 17:23:11 +0000 (17:23 +0000)]
[analyzer] Allow pointers to escape through selector callbacks.

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

12 years agoRemove this test again which fails the build-bot for reasons yet
Fariborz Jahanian [Wed, 9 May 2012 17:18:19 +0000 (17:18 +0000)]
Remove this test again which fails the build-bot for reasons yet
unknown to me.

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

12 years agoDeclare abstract class ArgumentsAdjuster. This abstract interface describes
Simon Atanasyan [Wed, 9 May 2012 16:18:30 +0000 (16:18 +0000)]
Declare abstract class ArgumentsAdjuster. This abstract interface describes
a command line argument adjuster, which is responsible for command line
arguments modification before the arguments are used to run a frontend action.

Define class ClangSyntaxOnlyAdjuster implements ArgumentsAdjuster interface.
This class converts input command line arguments to the "syntax check only"
variant.

Reviewed by Manuel Klimek.

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

12 years agoRe-add test for // rdar://11374235
Fariborz Jahanian [Wed, 9 May 2012 16:15:46 +0000 (16:15 +0000)]
Re-add test for // rdar://11374235

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

12 years ago[AST/libclang] Speed up clang_getOverriddenCursors() considerably by reserving a bit
Argyrios Kyrtzidis [Wed, 9 May 2012 16:12:57 +0000 (16:12 +0000)]
[AST/libclang] Speed up clang_getOverriddenCursors() considerably by reserving a bit
in ObjCMethodDecl to indicate whether the method does not override any other method,
which is the majority of cases.

That way we can avoid unnecessary work doing lookups, especially when PCH is involved.

rdar://11360082

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

12 years agoupdate calls to objectsize intrinsic to match LLVM r156473
Nuno Lopes [Wed, 9 May 2012 15:53:34 +0000 (15:53 +0000)]
update calls to objectsize intrinsic to match LLVM r156473
add a test for -fbounds-checking code generation

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

12 years agoRecover properly if a class member declaration starts with a scope specifier
Richard Smith [Wed, 9 May 2012 08:23:23 +0000 (08:23 +0000)]
Recover properly if a class member declaration starts with a scope specifier
or template-id which can't be parsed.

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

12 years agoFix Engrish.
Ted Kremenek [Wed, 9 May 2012 06:29:38 +0000 (06:29 +0000)]
Fix Engrish.

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

12 years agoTeach IsTailPaddedMemberArray() (used by -Warray-bounds) that a FieldDecl may have...
Ted Kremenek [Wed, 9 May 2012 05:35:08 +0000 (05:35 +0000)]
Teach IsTailPaddedMemberArray() (used by -Warray-bounds) that a FieldDecl may have a Typedef type, and not always a ConstantArrayType.

Fixes <rdar://problem/11387038>.

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

12 years agoA little tweak to the SFINAE condition reporting. Don't say:
Richard Smith [Wed, 9 May 2012 05:17:00 +0000 (05:17 +0000)]
A little tweak to the SFINAE condition reporting. Don't say:

  candidate template ignored: substitution failed [with T = int]: no type named 'type' in 'std::enable_if<false, void>'

Instead, just say:

  candidate template ignored: disabled by 'enable_if' [with T = int]

... and point at the enable_if condition which (we assume) failed.

This is applied to all cases where the user writes 'typename enable_if<...>::type' (optionally prefixed with a nested name specifier), and 'enable_if<...>' names a complete class type which does not have a member named 'type', and this results in a candidate function being ignored in a SFINAE context. Thus it catches 'std::enable_if', 'std::__1::enable_if', 'boost::enable_if' and 'llvm::enable_if'.

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

12 years agoFix typo.
Ted Kremenek [Wed, 9 May 2012 04:35:15 +0000 (04:35 +0000)]
Fix typo.

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

12 years agoRemove thid test for now.
Fariborz Jahanian [Wed, 9 May 2012 00:27:52 +0000 (00:27 +0000)]
Remove thid test for now.

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

12 years agoUpdate the SelfReferenceChecker. Refactored some of the visitor methods.
Richard Trieu [Wed, 9 May 2012 00:21:34 +0000 (00:21 +0000)]
Update the SelfReferenceChecker.  Refactored some of the visitor methods.
Added support for conditional operators and tightened the exclusion of the
unary operator from all operators to only the address of operator.

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

12 years agoUpdate checker build.
Ted Kremenek [Wed, 9 May 2012 00:08:47 +0000 (00:08 +0000)]
Update checker build.

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

12 years agoModern objective-c translation. Translating default
Fariborz Jahanian [Tue, 8 May 2012 23:54:35 +0000 (23:54 +0000)]
Modern objective-c translation. Translating default
synthesis of property getter/setters. // rdar://11374235

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

12 years ago[analyzer] We currently do not fully support CompoundLiterals in
Anna Zaks [Tue, 8 May 2012 23:40:38 +0000 (23:40 +0000)]
[analyzer] We currently do not fully support CompoundLiterals in
RegionStore, so be explicit about it and generate UnknownVal().

This is a hack to ensure we never produce undefined values for a value
coming from a compound value. (The undefined values can lead to
false positives.)

radar://10127782

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

12 years agoadd -fbounds-checking option.
Nuno Lopes [Tue, 8 May 2012 22:10:46 +0000 (22:10 +0000)]
add -fbounds-checking option.
When enabled, clang generates bounds checks for array and pointers dereferences. Work to follow in LLVM's backend.

OK'ed by Chad; thanks for the review.

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

12 years agoHaving RegionStore lower field bindings to raw offsets, just like ElementRegions...
Ted Kremenek [Tue, 8 May 2012 21:49:54 +0000 (21:49 +0000)]
Having RegionStore lower field bindings to raw offsets, just like ElementRegions.  This is a bit
disruptive, but it allows RegionStore to better "see" through casts that reinterpret arrays of values
as structs.  Fixes <rdar://problem/11405978>.

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

12 years agoWhen creating lazy bindings in RegionStore, propagate existing lazy bindings instead...
Ted Kremenek [Tue, 8 May 2012 21:49:51 +0000 (21:49 +0000)]
When creating lazy bindings in RegionStore, propagate existing lazy bindings instead of creating new ones.
This is a functionality optimization.

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

12 years agoInclude address of Store in graphviz output of ExplodedGraph.
Ted Kremenek [Tue, 8 May 2012 21:49:47 +0000 (21:49 +0000)]
Include address of Store in graphviz output of ExplodedGraph.

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

12 years agoBind cleanups after doing l2r conversion on the operand of a
John McCall [Tue, 8 May 2012 21:41:25 +0000 (21:41 +0000)]
Bind cleanups after doing l2r conversion on the operand of a
@throw expression;  l2r conversion can introduce new cleanups
in certain cases, like when the expression is an ObjC property
reference of retainable type in ARC.

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

12 years ago[analyzer] SelfInit: Stop tracking self if it's assigned a value we
Anna Zaks [Tue, 8 May 2012 21:19:21 +0000 (21:19 +0000)]
[analyzer] SelfInit: Stop tracking self if it's assigned a value we
don't reason about.

Self is just like a local variable in init methods, so it can be
assigned anything like result of static functions, other methods ... So
to suppress false positives that result in such cases, stop tracking the
checker-specific state after self is being assigned to (unless the
value is't being assigned to is either self or conforms to our rules).

This change does not invalidate any existing regression tests.

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

12 years agomodern objc translation. objc_getClass() and objc_getMetaClass()
Fariborz Jahanian [Tue, 8 May 2012 20:55:55 +0000 (20:55 +0000)]
modern objc translation.  objc_getClass() and objc_getMetaClass()
prototypes should both return  `struct objc_class *`.
// rdar://11375495

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

12 years agoThe address of a vla is actually complex and requires a dereference.
Eric Christopher [Tue, 8 May 2012 18:56:47 +0000 (18:56 +0000)]
The address of a vla is actually complex and requires a dereference.

Part of rdar://11352000

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

12 years agoWhitespace.
Eric Christopher [Tue, 8 May 2012 18:56:42 +0000 (18:56 +0000)]
Whitespace.

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

12 years agoFix fmin*/fmax* library builtin signatures.
Douglas Gregor [Tue, 8 May 2012 18:29:52 +0000 (18:29 +0000)]
Fix fmin*/fmax* library builtin signatures.

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

12 years agoFixes a typo. note_xxx not not_xxx.
Fariborz Jahanian [Tue, 8 May 2012 18:03:39 +0000 (18:03 +0000)]
Fixes a typo. note_xxx not not_xxx.

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

12 years agoMake -Wformat accept printf("%hhx", c); with -funsigned-char
Hans Wennborg [Tue, 8 May 2012 17:21:31 +0000 (17:21 +0000)]
Make -Wformat accept printf("%hhx", c); with -funsigned-char

For "%hhx", printf expects an unsigned char. This makes Clang
accept a 'char' argument for that also when using -funsigned-char.

This fixes PR12761.

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

12 years ago[clang.py] Remove trailing whitespace from recent commits
Gregory Szorc [Tue, 8 May 2012 06:01:34 +0000 (06:01 +0000)]
[clang.py] Remove trailing whitespace from recent commits

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

12 years ago[clang.py] TranslationUnit API improvements
Gregory Szorc [Tue, 8 May 2012 05:56:38 +0000 (05:56 +0000)]
[clang.py] TranslationUnit API improvements

* TranslationUnit reading and parsing now implemented as
  TranslationUnit.from_ast() and TranslationUnit.from_source().
* Index.parse() and Index.read() implemented through above.
* Index.parse() and Index.read() now raise a TanslationUnitLoadException
  instead of returning None if a TranslationUnit could not be
  instantiated. This is backwards incompatible.
* Ability to save TranslationUnits via TranslationUnit.save().
* TranslationUnit now holds onto Index instance that created. This means
  the Index can't be GC'd until the TranslationUnit is itself GC'd,
  making memory management thoughtless.
* Don't use [] as a default argument value, as the initial value used is
  reused for the duration of the program.

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

12 years agoTeach the analyzer about CXXScaleValueInitExpr.
Ted Kremenek [Tue, 8 May 2012 05:13:40 +0000 (05:13 +0000)]
Teach the analyzer about CXXScaleValueInitExpr.

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

12 years agoClean up SemaDeclAttr for high-warnings build.
Jordy Rose [Tue, 8 May 2012 03:27:22 +0000 (03:27 +0000)]
Clean up SemaDeclAttr for high-warnings build.

Includes a real potential initialization problem.

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

12 years ago[analyzer] BasicConstraintManager: drop NE-constraints once we have a value.
Jordy Rose [Tue, 8 May 2012 03:27:20 +0000 (03:27 +0000)]
[analyzer] BasicConstraintManager: drop NE-constraints once we have a value.

This could conceivably cut down on state proliferation, although we don't
use BasicConstraintManager by default anymore. No functionality change.

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

12 years ago[analyzer] Rework both constraint managers to handle mixed-type comparisons.
Jordy Rose [Tue, 8 May 2012 03:27:16 +0000 (03:27 +0000)]
[analyzer] Rework both constraint managers to handle mixed-type comparisons.

This involves keeping track of three separate types: the symbol type, the
adjustment type, and the comparison type. For example, in "$x + 5 > 0ULL",
if the type of $x is 'signed char', the adjustment type is 'int' and the
comparison type is 'unsigned long long'. Most of the time these three types
will be the same, but we should still do the right thing when the
comparison value is out of range, and wraparound should be calculated in
the adjustment type.

This also re-disables an out-of-bounds test; we were extracting the symbol
from non-additive SymIntExprs, but then throwing away the integer.

Sorry for the large patch; both the basic and range constraint managers needed
to be updated together, since they share code in SimpleConstraintManager.

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

12 years ago[analyzer] Add an abstraction for the bit width and signedness of an APSInt. No funct...
Jordy Rose [Tue, 8 May 2012 03:26:58 +0000 (03:26 +0000)]
[analyzer] Add an abstraction for the bit width and signedness of an APSInt. No functionality change.

There are more parts of the analyzer that could use the convenience of APSIntType, particularly the constraint engine, but that needs a fair amount of rewriting to handle mixed-type constraints anyway.

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

12 years agohopefully unbreak some buildbots
Nuno Lopes [Tue, 8 May 2012 01:54:53 +0000 (01:54 +0000)]
hopefully unbreak some buildbots

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

12 years ago[libclang] Map 'id'/'Class'/'SEL' to the corresponding CXType kinds.
Argyrios Kyrtzidis [Tue, 8 May 2012 01:22:12 +0000 (01:22 +0000)]
[libclang] Map 'id'/'Class'/'SEL' to the corresponding CXType kinds.

rdar://11357807

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

12 years agoRobustify test
Douglas Gregor [Tue, 8 May 2012 00:29:04 +0000 (00:29 +0000)]
Robustify test

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

12 years agoAdd missing 'y'.
Rafael Espindola [Tue, 8 May 2012 00:28:39 +0000 (00:28 +0000)]
Add missing 'y'.

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

12 years agoIntroduce a new libclang API to determine the platform availability of
Douglas Gregor [Tue, 8 May 2012 00:14:45 +0000 (00:14 +0000)]
Introduce a new libclang API to determine the platform availability of
a given entity, so that we can tell when the entity was
introduced/deprecated/obsoleted on each platform for which we have an
annotation. Addresses <rdar://problem/11365715>.

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

12 years agoTeach the static analyzer that NSLog() and friends do not hold on to object reference...
Ted Kremenek [Tue, 8 May 2012 00:12:09 +0000 (00:12 +0000)]
Teach the static analyzer that NSLog() and friends do not hold on to object references (thus extending their lifetime).

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