]> granicus.if.org Git - clang/log
clang
14 years agoImplement code completion for Objective-C method declarations and
Douglas Gregor [Wed, 7 Apr 2010 00:21:17 +0000 (00:21 +0000)]
Implement code completion for Objective-C method declarations and
definitions, e.g., after

  -

or

  - (id)

we'll find all of the "likely" instance methods that one would want to
declare or define at this point. In the latter case, we only produce
results whose return types match "id".

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

14 years agoMinor clean up.
Fariborz Jahanian [Tue, 6 Apr 2010 23:43:59 +0000 (23:43 +0000)]
Minor clean up.

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

14 years agodefault access for synthesize ivar is @protect.
Fariborz Jahanian [Tue, 6 Apr 2010 23:36:17 +0000 (23:36 +0000)]
default access for synthesize ivar is @protect.
Fixes radar 7823675.

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

14 years agoPatch to not build ivar ASTs when they are ilegally
Fariborz Jahanian [Tue, 6 Apr 2010 22:43:48 +0000 (22:43 +0000)]
Patch to not build ivar ASTs when they are ilegally
declared in categories.

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

14 years agoDevote a special diagnostic to the typo
John McCall [Tue, 6 Apr 2010 22:24:14 +0000 (22:24 +0000)]
Devote a special diagnostic to the typo
  (void*) someFunction(5, 10, 15, 20);
where the cast is presumably meant to be to 'void'.

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

14 years agoTeach MemRegion::getBaseRegion() about ObjCIvarRegions. We want to treat
Ted Kremenek [Tue, 6 Apr 2010 22:06:03 +0000 (22:06 +0000)]
Teach MemRegion::getBaseRegion() about ObjCIvarRegions.  We want to treat
them the same way as fields.  This fixes a regression in RegionStore::RemoveDeadbindings()
that emerged from going to the cluster-based analysis.

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

14 years agoImplement the protected access restriction ([class.protected]), which requires
John McCall [Tue, 6 Apr 2010 21:38:20 +0000 (21:38 +0000)]
Implement the protected access restriction ([class.protected]), which requires
that protected members be used on objects of types which derive from the
naming class of the lookup.  My first N attempts at this were poorly-founded,
largely because the standard is very badly worded here.

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

14 years agoWhen code completion produces an overload set as its results (e.g.,
Douglas Gregor [Tue, 6 Apr 2010 20:19:47 +0000 (20:19 +0000)]
When code completion produces an overload set as its results (e.g.,
while we're completing in the middle of a function call), also produce
"ordinary" name results that show what can be typed at that point.

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

14 years agoDo not produce semicolons at the end of code-completion results
Douglas Gregor [Tue, 6 Apr 2010 20:11:37 +0000 (20:11 +0000)]
Do not produce semicolons at the end of code-completion results

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

14 years agoOnly prove macros as code-completion results when we're in a case
Douglas Gregor [Tue, 6 Apr 2010 20:02:15 +0000 (20:02 +0000)]
Only prove macros as code-completion results when we're in a case
statement or for ordinary names. This means that we won't show macros
when completing, e.g., member expressions such as "p->".

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

14 years agoFix ccc-analyzer's handling of quoted arguments in the build command. Fixes PR 6791.[B
Ted Kremenek [Tue, 6 Apr 2010 19:41:24 +0000 (19:41 +0000)]
Fix ccc-analyzer's handling of quoted arguments in the build command.  Fixes PR 6791.[B

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

14 years agoWhen sending a message to "id", apply some heuristics to try to narrow
Douglas Gregor [Tue, 6 Apr 2010 19:22:33 +0000 (19:22 +0000)]
When sending a message to "id", apply some heuristics to try to narrow
down the set of code-completion results based on Objective-C
conventions.

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

14 years agoadd a testcase that the integrated assembler rejects, this verifies
Chris Lattner [Tue, 6 Apr 2010 18:46:25 +0000 (18:46 +0000)]
add a testcase that the integrated assembler rejects, this verifies
that the integrated assembler is working.

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

14 years agoteach clang to install the inline asm diagnostic handler,
Chris Lattner [Tue, 6 Apr 2010 18:38:50 +0000 (18:38 +0000)]
teach clang to install the inline asm diagnostic handler,
allowing backend errors to be mapped through clang's
diagnostics subsystem, including the backend location info.

We now get:

$ clang asm.c -c -o t.o -integrated-as
<inline asm>:1:2: error: unrecognized instruction
        abc incl    %eax
        ^
1 diagnostic generated.

With colors, and correct "# diagnostics generated".

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

14 years agoreduce indentation, tidy.
Chris Lattner [Tue, 6 Apr 2010 17:52:14 +0000 (17:52 +0000)]
reduce indentation, tidy.

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

14 years agoimproved wording around ABI
Blaine Garst [Tue, 6 Apr 2010 17:46:43 +0000 (17:46 +0000)]
improved wording around ABI

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

14 years agoMake code-completion for Objective-C message sends to "id" work in the
Douglas Gregor [Tue, 6 Apr 2010 17:30:22 +0000 (17:30 +0000)]
Make code-completion for Objective-C message sends to "id" work in the
presence of precompiled headers by forcibly loading all of the
methods we know about from the PCH file before constructing our
code-completion list.

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

14 years agofit in 80 cols
Chris Lattner [Tue, 6 Apr 2010 17:29:22 +0000 (17:29 +0000)]
fit in 80 cols

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

14 years agoPut type restriction on convesion to nonconforming 'id' back in
Fariborz Jahanian [Tue, 6 Apr 2010 17:23:39 +0000 (17:23 +0000)]
Put type restriction on convesion to nonconforming 'id' back in
block pointer type comparison.

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

14 years agoDriver: Add a Tool::hasGoodDiagnostics hook, and use it to simplify logic for
Daniel Dunbar [Tue, 6 Apr 2010 17:07:49 +0000 (17:07 +0000)]
Driver: Add a Tool::hasGoodDiagnostics hook, and use it to simplify logic for
deciding when we need to emit an extra "command failed" diagnostic.
 - This also fixes the case where we were emitting that extra diagnostics, even
   when using clang w/ the integrated assembler, which has good diagnostics.

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

14 years agoImplement support for code completion of an Objective-C message send to
Douglas Gregor [Tue, 6 Apr 2010 16:40:00 +0000 (16:40 +0000)]
Implement support for code completion of an Objective-C message send to
"id" or an expression of type "id". In these cases, we produce a list
of all of the (class or instance) methods, respectively, that we know about.

Note that this implementation does not yet work well with precompiled
headers; that's coming soon.

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

14 years agoAdd test for code completion of Objective-C message sends to classes.
Douglas Gregor [Tue, 6 Apr 2010 15:27:03 +0000 (15:27 +0000)]
Add test for code completion of Objective-C message sends to classes.

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

14 years agoPerform code-completion within ParseCastExpression, which handles,
Douglas Gregor [Tue, 6 Apr 2010 15:09:27 +0000 (15:09 +0000)]
Perform code-completion within ParseCastExpression, which handles,
e.g., the right-hand side of binary expressions.

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

14 years agoclang-wpa fixes for Diagnostic
Douglas Gregor [Tue, 6 Apr 2010 04:03:12 +0000 (04:03 +0000)]
clang-wpa fixes for Diagnostic

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

14 years agoFix PR 6725. It looks like the copy constructor gets elided during inlining.
Zhongxing Xu [Tue, 6 Apr 2010 03:01:56 +0000 (03:01 +0000)]
Fix PR 6725. It looks like the copy constructor gets elided during inlining.
This bug only shows up with GCC 4.4.1 Release-Asserts build.

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

14 years agoUnbreak build
Douglas Gregor [Tue, 6 Apr 2010 01:25:58 +0000 (01:25 +0000)]
Unbreak build

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

14 years agoIRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.
Daniel Dunbar [Tue, 6 Apr 2010 01:07:44 +0000 (01:07 +0000)]
IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.

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

14 years agoSimplify.
Daniel Dunbar [Tue, 6 Apr 2010 01:07:41 +0000 (01:07 +0000)]
Simplify.

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

14 years agoSimplify.
Daniel Dunbar [Tue, 6 Apr 2010 01:07:39 +0000 (01:07 +0000)]
Simplify.

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

14 years agoMake Diagnostic reference-counted, which is simpler than juggling
Douglas Gregor [Mon, 5 Apr 2010 23:52:57 +0000 (23:52 +0000)]
Make Diagnostic reference-counted, which is simpler than juggling
maybe-ownership vs. ownership.

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

14 years agoUse cast<> + OpaquePtr.getAs<Decl> to add extra checking of our assumptions.
Ted Kremenek [Mon, 5 Apr 2010 23:45:09 +0000 (23:45 +0000)]
Use cast<> + OpaquePtr.getAs<Decl> to add extra checking of our assumptions.

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

14 years agoinline in MC assembly parsers. clang -integrated-as now
Chris Lattner [Mon, 5 Apr 2010 23:33:20 +0000 (23:33 +0000)]
inline in MC assembly parsers.  clang -integrated-as now
works with inline asm!

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

14 years agoMatch MemoryBuffer API changes.
Chris Lattner [Mon, 5 Apr 2010 22:42:27 +0000 (22:42 +0000)]
Match MemoryBuffer API changes.

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

14 years agoFix possible null dereference by bailing out of CheckObjCPropertyAttributes() early...
Ted Kremenek [Mon, 5 Apr 2010 22:39:42 +0000 (22:39 +0000)]
Fix possible null dereference by bailing out of CheckObjCPropertyAttributes() early if the Decl* is null.

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

14 years agoGrrrr
Douglas Gregor [Mon, 5 Apr 2010 21:47:48 +0000 (21:47 +0000)]
Grrrr

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

14 years agoTry to de-bork build of WPA
Douglas Gregor [Mon, 5 Apr 2010 21:47:24 +0000 (21:47 +0000)]
Try to de-bork build of WPA

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

14 years agoIRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.
Daniel Dunbar [Mon, 5 Apr 2010 21:36:35 +0000 (21:36 +0000)]
IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.
 - Unfortunately, this requires some horrible code in CGObjCMac which always
   allocats a CGBitFieldInfo because we don't currently build a proper layout
   for Objective-C classes. It needs to be cleaned up, but I don't want the
   bit-field cleanups to be blocked on that.

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

14 years agoExtend the type printing policy to allow one to turn off the printing
Douglas Gregor [Mon, 5 Apr 2010 21:25:31 +0000 (21:25 +0000)]
Extend the type printing policy to allow one to turn off the printing
of file locations for anonymous tag types (e.g., "enum <anonymous at
t.h:15:6>"), which can get rather long.

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

14 years agoPrint the errors when a clang test fails instead of just listing the
Jeffrey Yasskin [Mon, 5 Apr 2010 21:20:38 +0000 (21:20 +0000)]
Print the errors when a clang test fails instead of just listing the
failing test files.

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

14 years agoClarify the ownership semantics of the Diagnostic object used by
Douglas Gregor [Mon, 5 Apr 2010 21:10:19 +0000 (21:10 +0000)]
Clarify the ownership semantics of the Diagnostic object used by
ASTUnit. Previously, we would end up with use-after-free errors
because the Diagnostic object would be creating in one place (say,
CIndex) and its ownership would not be transferred into the
ASTUnit. Fixes <rdar://problem/7818608>.

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

14 years agoEmit debug info for objc getters and setters.
Devang Patel [Mon, 5 Apr 2010 21:09:15 +0000 (21:09 +0000)]
Emit debug info for objc getters and setters.

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

14 years agofix PR6780, properly handling the IR {|} escapes in inline asm strings.
Chris Lattner [Mon, 5 Apr 2010 18:44:00 +0000 (18:44 +0000)]
fix PR6780, properly handling the IR {|} escapes in inline asm strings.

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

14 years agoMake the ASTUnit constructor private; all ASTUnit clients should be using the static...
Douglas Gregor [Mon, 5 Apr 2010 18:20:14 +0000 (18:20 +0000)]
Make the ASTUnit constructor private; all ASTUnit clients should be using the static factory functions

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

14 years agofix PR6782, an accept invalid. We weren't emitting the diagnostic
Chris Lattner [Mon, 5 Apr 2010 18:18:31 +0000 (18:18 +0000)]
fix PR6782, an accept invalid.  We weren't emitting the diagnostic
returned by SetTypeSpecType.

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

14 years agoMinor ASTUnit cleanups:
Douglas Gregor [Mon, 5 Apr 2010 18:10:21 +0000 (18:10 +0000)]
Minor ASTUnit cleanups:
  - Rename "Diagnostics" and related to "StoredDiagnostics", to better
  capture what we're actually storing.
  - Move SourceManager and FileManager to the heap.

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

14 years agoIRgen: Lift BitFieldInfo to CGBitFieldInfo at namespace level.
Daniel Dunbar [Mon, 5 Apr 2010 16:20:44 +0000 (16:20 +0000)]
IRgen: Lift BitFieldInfo to CGBitFieldInfo at namespace level.

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

14 years agoAdd a FIXME and reduce nesting.
Daniel Dunbar [Mon, 5 Apr 2010 16:20:33 +0000 (16:20 +0000)]
Add a FIXME and reduce nesting.

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

14 years agoCode completion results that refer to macros now get the cursor kind
Douglas Gregor [Mon, 5 Apr 2010 16:10:30 +0000 (16:10 +0000)]
Code completion results that refer to macros now get the cursor kind
of macro definitions when passed to CIndex. Add test for code
completion of macros via CIndex.

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

14 years agoAlways assume block-level expressions in the caller are alive when analyzing
Zhongxing Xu [Mon, 5 Apr 2010 13:16:29 +0000 (13:16 +0000)]
Always assume block-level expressions in the caller are alive when analyzing
the callee.

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

14 years agoSince now we process regions in clusters when removing dead bindings, this
Zhongxing Xu [Mon, 5 Apr 2010 13:00:12 +0000 (13:00 +0000)]
Since now we process regions in clusters when removing dead bindings, this
code can be removed.

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

14 years agoReapply patch for adding support for address spaces and added a isVolatile field...
Mon P Wang [Sun, 4 Apr 2010 03:10:52 +0000 (03:10 +0000)]
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset.

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

14 years agoDon't produce a vtable for a class if we have an explicit template instantiation...
Rafael Espindola [Sat, 3 Apr 2010 04:26:42 +0000 (04:26 +0000)]
Don't produce a vtable for a class if we have an explicit template instantiation declaration and no key function. We will produce the vtable at the explicit template instantiation.

Fixes PR6748

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

14 years agoAdd option and macro definition for AES instructions. Now produces real
Eric Christopher [Fri, 2 Apr 2010 23:50:19 +0000 (23:50 +0000)]
Add option and macro definition for AES instructions.  Now produces real
assembly for testcases.

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

14 years agoImprove diagnosing when a method type does not start with '-'|'+'
Fariborz Jahanian [Fri, 2 Apr 2010 23:15:40 +0000 (23:15 +0000)]
Improve diagnosing when a method type does not start with '-'|'+'
when parsing. Fixes radar 7822196.

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

14 years agoIRgen/NeXT: Remove my refactoring-enabling asserts, and add a FIXME.
Daniel Dunbar [Fri, 2 Apr 2010 22:29:40 +0000 (22:29 +0000)]
IRgen/NeXT: Remove my refactoring-enabling asserts, and add a FIXME.

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

14 years agoAvoid unneeded calls to opt/llvm-dis.
Daniel Dunbar [Fri, 2 Apr 2010 22:29:38 +0000 (22:29 +0000)]
Avoid unneeded calls to opt/llvm-dis.

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

14 years agoMerge several tests into switch.c.
Daniel Dunbar [Fri, 2 Apr 2010 22:29:35 +0000 (22:29 +0000)]
Merge several tests into switch.c.

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

14 years agoIRgen/Obj-C: Eliminate FindIvarInterface, now that ivar's are in the right DeclContex...
Daniel Dunbar [Fri, 2 Apr 2010 21:14:02 +0000 (21:14 +0000)]
IRgen/Obj-C: Eliminate FindIvarInterface, now that ivar's are in the right DeclContexts (-2 FIXMEs). We still have an annoying linear scan + hidden dependency on how Obj-C layout is done.
 - This is also an algorithmic improvement in IRgen for Obj-C, although it probably doesn't matter in practice.

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

14 years agoAST: Add ObjCIvarDecl::getContainingInterface().
Daniel Dunbar [Fri, 2 Apr 2010 21:13:59 +0000 (21:13 +0000)]
AST: Add ObjCIvarDecl::getContainingInterface().

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

14 years agodiagnose declaring class extension after its implementation
Fariborz Jahanian [Fri, 2 Apr 2010 20:53:05 +0000 (20:53 +0000)]
diagnose declaring class extension after its implementation
(radar 7822210).

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

14 years agoNewDebugLoc got renamed to DebugLoc.
Chris Lattner [Fri, 2 Apr 2010 20:21:43 +0000 (20:21 +0000)]
NewDebugLoc got renamed to DebugLoc.

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

14 years agoSema/Obj-C: Narrow type of ObjCIvarDecl::Create, and check additional invariants...
Daniel Dunbar [Fri, 2 Apr 2010 20:10:03 +0000 (20:10 +0000)]
Sema/Obj-C: Narrow type of ObjCIvarDecl::Create, and check additional invariants on the provided DeclContext.
 - Doug, please see the FIXME in DeclObjC.cpp -- I am not sure what the right fix is.

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

14 years agoDiagnose invalid code with -fobjc-nonfragile-abi2 when
Fariborz Jahanian [Fri, 2 Apr 2010 20:09:24 +0000 (20:09 +0000)]
Diagnose invalid code with -fobjc-nonfragile-abi2 when
property is being accessed without the dot-syntax notation.
(radar 7822344).

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

14 years agoSema/Obj-C: Narrow type, and simplify.
Daniel Dunbar [Fri, 2 Apr 2010 19:44:54 +0000 (19:44 +0000)]
Sema/Obj-C: Narrow type, and simplify.

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

14 years agoWe seem to get an inconsistent alignment value in the generated
Douglas Gregor [Fri, 2 Apr 2010 19:02:06 +0000 (19:02 +0000)]
We seem to get an inconsistent alignment value in the generated
assembly for the global "d7". We were previously testing for alignment
3, which seems to happen for some builders and not for others. I've
eliminated the alignment check and added a FIXME to unbreak the
buildbots.

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

14 years agoRevert r100193 since it causes failures in objc in clang
Mon P Wang [Fri, 2 Apr 2010 18:43:42 +0000 (18:43 +0000)]
Revert r100193 since it causes failures in objc in clang

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

14 years agoSema/Obj-C: Simplify -- eliminate dead casts & provable asserts, and narrow type.
Daniel Dunbar [Fri, 2 Apr 2010 18:29:09 +0000 (18:29 +0000)]
Sema/Obj-C: Simplify -- eliminate dead casts & provable asserts, and narrow type.

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

14 years agoRework our handling of copy construction of temporaries, which was a
Douglas Gregor [Fri, 2 Apr 2010 18:24:57 +0000 (18:24 +0000)]
Rework our handling of copy construction of temporaries, which was a
poor (and wrong) approximation of the actual rules governing when to
build a copy and when it can be elided.

The correct implementation is actually simpler than the
approximation. When we only enumerate constructors as part of
initialization (e.g., for direct initialization or when we're copying
from a class type or one of its derived classes), we don't create a
copy. When we enumerate all conversion functions, we do create a
copy. Before, we created some extra copies and missed some
others. The new test copy-initialization.cpp shows a case where we
missed creating a (required, non-elidable) copy as part of a
user-defined conversion, which resulted in a miscompile. This commit
also fixes PR6757, where the missing copy made us reject well-formed
code in the ternary operator.

This commit also cleans up our handling of copy elision in the case
where we create an extra copy of a temporary object, which became
necessary now that we produce the right copies. The code that seeks to
find the temporary object being copied has moved into
Expr::getTemporaryObject(); it used to have two different
not-quite-the-same implementations, one in Sema and one in CodeGen.

Note that we still do not attempt to perform the named return value
optimization, so we miss copy elisions for return values and throw
expressions.

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

14 years agoReapply patch for adding support for address spaces and added a isVolatile field...
Mon P Wang [Fri, 2 Apr 2010 18:04:30 +0000 (18:04 +0000)]
Reapply patch for adding support for address spaces and added a isVolatile field to memcpy, memmove, and memset.

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

14 years agoCG/NeXT: Assert some invariants on an ivar's containing decl context that I am about...
Daniel Dunbar [Fri, 2 Apr 2010 15:43:29 +0000 (15:43 +0000)]
CG/NeXT: Assert some invariants on an ivar's containing decl context that I am about to refactor based on, following some testing.

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

14 years agoIf a constructor is a dependent context, just set the base and member initializers...
Anders Carlsson [Fri, 2 Apr 2010 06:26:44 +0000 (06:26 +0000)]
If a constructor is a dependent context, just set the base and member initializers as they are written. Fixes a bug where we wouldn't show initialization order warnings when instantiating.

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

14 years agoDiagnose multiple base and member initializers in class templates.
Anders Carlsson [Fri, 2 Apr 2010 05:42:15 +0000 (05:42 +0000)]
Diagnose multiple base and member initializers in class templates.

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

14 years agoMore cleanup.
Anders Carlsson [Fri, 2 Apr 2010 03:43:34 +0000 (03:43 +0000)]
More cleanup.

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

14 years agoConstify.
Anders Carlsson [Fri, 2 Apr 2010 03:38:04 +0000 (03:38 +0000)]
Constify.

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

14 years agoMinor cleanup.
Anders Carlsson [Fri, 2 Apr 2010 03:37:03 +0000 (03:37 +0000)]
Minor cleanup.

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

14 years agoResolve a layering violation by making AddTaggedVal public for
Chandler Carruth [Fri, 2 Apr 2010 01:39:03 +0000 (01:39 +0000)]
Resolve a layering violation by making AddTaggedVal public for
PartialDiagnostic objects, and hoisting the stream operator for QualType into
Type.h with the operator for the normal DiagnosticBuilder. Also remove the no
longer needed friend declaration for the DeclarationName stream operator.

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

14 years agoCheck in a motivating test for the revised access semantics.
John McCall [Fri, 2 Apr 2010 00:11:49 +0000 (00:11 +0000)]
Check in a motivating test for the revised access semantics.

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

14 years agoCorrect the calculation of access to more closely model the wording in
John McCall [Fri, 2 Apr 2010 00:03:43 +0000 (00:03 +0000)]
Correct the calculation of access to more closely model the wording in
the standard.

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

14 years agoUpdate analyzer build.
Ted Kremenek [Thu, 1 Apr 2010 23:25:38 +0000 (23:25 +0000)]
Update analyzer build.

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

14 years agoMinor cleanup with the ternary operator
Douglas Gregor [Thu, 1 Apr 2010 22:47:07 +0000 (22:47 +0000)]
Minor cleanup with the ternary operator

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

14 years agoRelax the typesafty rules of block pointers types which
Fariborz Jahanian [Thu, 1 Apr 2010 19:50:22 +0000 (19:50 +0000)]
Relax the typesafty rules of block pointers types which
take'id' or return 'id' in their type. Fixes radar 7814131.

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

14 years agoOverhaul checking of non-type template arguments that should refer to
Douglas Gregor [Thu, 1 Apr 2010 18:32:35 +0000 (18:32 +0000)]
Overhaul checking of non-type template arguments that should refer to
an object or function. Our previous checking was too lax, and ended up
allowing missing or extraneous address-of operators, among other
evils. The new checking provides better diagnostics and adheres more
closely to the standard.

Fixes PR6563 and PR6749.

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

14 years agoDriver: Add support for a CLANGXX_IS_PRODUCTION build variable, which enable
Daniel Dunbar [Thu, 1 Apr 2010 18:21:41 +0000 (18:21 +0000)]
Driver: Add support for a CLANGXX_IS_PRODUCTION build variable, which enable
Clang++ support, even in "Production" mode (for testing purposes).

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

14 years agoFix -Asserts warning, and protect against missing case.
Daniel Dunbar [Thu, 1 Apr 2010 16:50:48 +0000 (16:50 +0000)]
Fix -Asserts warning, and protect against missing case.

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

14 years agoInclude *.inc in install target
Kovarththanan Rajaratnam [Thu, 1 Apr 2010 14:24:41 +0000 (14:24 +0000)]
Include *.inc in install target

Fixes PR6755.

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

14 years agoUse the element type to compute the array size when the base region is a VarRegion.
Zhongxing Xu [Thu, 1 Apr 2010 08:20:27 +0000 (08:20 +0000)]
Use the element type to compute the array size when the base region is a VarRegion.
Patch by Jordy Rose.

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

14 years agoInitial support for visiting CXXMemberCallExpr.
Zhongxing Xu [Thu, 1 Apr 2010 07:58:50 +0000 (07:58 +0000)]
Initial support for visiting CXXMemberCallExpr.

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

14 years agoadjust to IRBuilder change and use faster DebugLoc apis.
Chris Lattner [Thu, 1 Apr 2010 06:31:43 +0000 (06:31 +0000)]
adjust to IRBuilder change and use faster DebugLoc apis.

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

14 years agoImprove C++ constructor handling.
Zhongxing Xu [Thu, 1 Apr 2010 03:47:27 +0000 (03:47 +0000)]
Improve C++ constructor handling.

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

14 years agoFix typo.
Eric Christopher [Thu, 1 Apr 2010 03:07:20 +0000 (03:07 +0000)]
Fix typo.

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

14 years agoFirst start at wmmintrin.h file with Intel AES-NI instructions.
Eric Christopher [Thu, 1 Apr 2010 03:03:35 +0000 (03:03 +0000)]
First start at wmmintrin.h file with Intel AES-NI instructions.

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

14 years agoFix a bug (PR 6699) in RegionStore::RemoveDeadBindings() where
Ted Kremenek [Thu, 1 Apr 2010 00:15:55 +0000 (00:15 +0000)]
Fix a bug (PR 6699) in RegionStore::RemoveDeadBindings() where
array values with a non-zero offset would get prematurely pruned from the store.

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

14 years agoImprove diagnostics when an elaborated-type-specifer containing a
Douglas Gregor [Wed, 31 Mar 2010 23:17:41 +0000 (23:17 +0000)]
Improve diagnostics when an elaborated-type-specifer containing a
nested-name-specifier (e.g., "class T::foo") fails to find a tag
member in the scope nominated by the
nested-name-specifier. Previously, we gave a bland

  error: 'Nested' does not name a tag member in the specified scope

which didn't actually say where we were looking, which was rather
horrible when the nested-name-specifier was instantiated. Now, we give
something a bit better:

  error: no class named 'Nested' in 'NoDepBase<T>'

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

14 years agoChange the representation of dependent elaborated-type-specifiers
Douglas Gregor [Wed, 31 Mar 2010 22:19:08 +0000 (22:19 +0000)]
Change the representation of dependent elaborated-type-specifiers
(such as "class T::foo") from an ElaboratedType of a TypenameType to a
DependentNameType, which more accurately models the underlying
concept.

Improve template instantiation for DependentNameType nodes that
represent nested-name-specifiers, by performing tag name lookup and
checking the resulting tag appropriately. Fixes PR5681.

There is still much testing and cleanup to do in this area.

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

14 years agoIssue better syntax error when objc's messaging
Fariborz Jahanian [Wed, 31 Mar 2010 20:22:35 +0000 (20:22 +0000)]
Issue better syntax error when objc's messaging
ares are not separated by ':' (radar 7030268).

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

14 years agoExtend DependentNameType with a keyword enum that specifies whether
Douglas Gregor [Wed, 31 Mar 2010 20:19:30 +0000 (20:19 +0000)]
Extend DependentNameType with a keyword enum that specifies whether
this was parsed as a typename-specifier, elaborated-type-specifier
(including the kind), or just a dependent qualified type name.

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

14 years agoFor reverse data flow analyses, enqueue the blocks in reverse order.
Ted Kremenek [Wed, 31 Mar 2010 18:45:04 +0000 (18:45 +0000)]
For reverse data flow analyses, enqueue the blocks in reverse order.
This more likely matches with the ideal order the blocks should be visited.
This shaves another 1% off the -fsyntax-only time for compare.c (403.gcc).

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

14 years agoRe-bind non-dependent CXXTemporaryObjectExpr nodes as temporaries when
Chandler Carruth [Wed, 31 Mar 2010 18:34:58 +0000 (18:34 +0000)]
Re-bind non-dependent CXXTemporaryObjectExpr nodes as temporaries when
instantiating a template, which ensures the destructor is called. This fixes
PR6671.

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

14 years agoPatch implements gcc's -Wno-protocol option to suppress warning
Fariborz Jahanian [Wed, 31 Mar 2010 18:23:33 +0000 (18:23 +0000)]
Patch implements gcc's -Wno-protocol option to suppress warning
on unimplemented methods in protocols adopted by a class.
(radar 7056600).

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

14 years agoRemove the AST statistics tracking I added yesterday; it didn't pan out.
Douglas Gregor [Wed, 31 Mar 2010 18:21:31 +0000 (18:21 +0000)]
Remove the AST statistics tracking I added yesterday; it didn't pan out.

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