]> granicus.if.org Git - clang/log
clang
14 years agodllimport and dllexport are declspec attributes, too. They're also
Charles Davis [Tue, 16 Feb 2010 18:27:26 +0000 (18:27 +0000)]
dllimport and dllexport are declspec attributes, too. They're also
Win32-specific.

Also, fix a test to use FileCheck instead of grepping LLVM IR.

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

14 years agoadd two aliases for SSE functions we already have, fixing PR6316.
Chris Lattner [Tue, 16 Feb 2010 18:21:25 +0000 (18:21 +0000)]
add two aliases for SSE functions we already have, fixing PR6316.

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

14 years agoadd freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318
Chris Lattner [Tue, 16 Feb 2010 18:14:57 +0000 (18:14 +0000)]
add freebsd/ppc[64] support, patch by Nathan Whitehorn, PR6318

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

14 years agoMinor rewriter cleanup and a test for a block rewriting bug.
Fariborz Jahanian [Tue, 16 Feb 2010 17:26:03 +0000 (17:26 +0000)]
Minor rewriter cleanup and a test for a block rewriting bug.

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

14 years agoAdd test case showing that a recursive block that captures a block pointer that
Ted Kremenek [Tue, 16 Feb 2010 16:55:10 +0000 (16:55 +0000)]
Add test case showing that a recursive block that captures a block pointer that
isn't marked '__block' is bad.

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

14 years agoAdd an extreme vbase offsets test. I'm kinda amazed that this works myself ;)
Anders Carlsson [Tue, 16 Feb 2010 16:50:08 +0000 (16:50 +0000)]
Add an extreme vbase offsets test. I'm kinda amazed that this works myself ;)

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

14 years agoHandle layout of vtables for virtual bases.
Anders Carlsson [Tue, 16 Feb 2010 16:49:35 +0000 (16:49 +0000)]
Handle layout of vtables for virtual bases.

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

14 years agoMove some code around in preparation for virtual base vtables.
Anders Carlsson [Tue, 16 Feb 2010 16:26:28 +0000 (16:26 +0000)]
Move some code around in preparation for virtual base vtables.

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

14 years agoFix rewriter bug when function call inside block with block parameter
Fariborz Jahanian [Tue, 16 Feb 2010 16:21:26 +0000 (16:21 +0000)]
Fix rewriter bug when function call inside block with block parameter
causes C++ compile error (radar 7651312).

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

14 years agoFix a bug where we would not emit secondary vtables for bases of a primary base.
Anders Carlsson [Tue, 16 Feb 2010 16:02:57 +0000 (16:02 +0000)]
Fix a bug where we would not emit secondary vtables for bases of a primary base.

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

14 years agoRename argument so the name reflects what it's doing.
Benjamin Kramer [Tue, 16 Feb 2010 10:07:31 +0000 (10:07 +0000)]
Rename argument so the name reflects what it's doing.

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

14 years agoAdd simpler checker to check if variables captured by a block are uninitialized.
Ted Kremenek [Tue, 16 Feb 2010 08:33:59 +0000 (08:33 +0000)]
Add simpler checker to check if variables captured by a block are uninitialized.

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

14 years agoSupport local namespace aliases and permit them to be instantiated.
John McCall [Tue, 16 Feb 2010 06:53:13 +0000 (06:53 +0000)]
Support local namespace aliases and permit them to be instantiated.

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

14 years agoEmit vbase offsets.
Anders Carlsson [Tue, 16 Feb 2010 04:59:55 +0000 (04:59 +0000)]
Emit vbase offsets.

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

14 years agoMore work on the new layout code.
Anders Carlsson [Tue, 16 Feb 2010 04:49:44 +0000 (04:49 +0000)]
More work on the new layout code.

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

14 years agoWhen emitting complete destructors for classes with virtual bases, compute
John McCall [Tue, 16 Feb 2010 04:15:37 +0000 (04:15 +0000)]
When emitting complete destructors for classes with virtual bases, compute
the offset to the virtual bases statically inside of relying on the virtual
base offsets in the object's vtable(s).  This is both more efficient and
sound against the destructor's manipulation of the vtables.

Also extract a few helper routines.

Oh and we seem to pass all tests with an optimized clang now.

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

14 years agoWhite-list comma expressions with the literal 0 as their RHS against
John McCall [Tue, 16 Feb 2010 04:10:53 +0000 (04:10 +0000)]
White-list comma expressions with the literal 0 as their RHS against
unused-value warnings.  This is a common macro idiom.

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

14 years agoMake the various type-decl Types (and their associated ASTContext routines)
John McCall [Tue, 16 Feb 2010 03:57:14 +0000 (03:57 +0000)]
Make the various type-decl Types (and their associated ASTContext routines)
accept const decls.

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

14 years agoRe-applying 96173. Looks like finally I got the test case right.
Sanjiv Gupta [Tue, 16 Feb 2010 03:37:11 +0000 (03:37 +0000)]
Re-applying 96173. Looks like finally I got the test case right.

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

14 years agoAdd test case to show that Clang now checks the format string
Ted Kremenek [Tue, 16 Feb 2010 02:14:24 +0000 (02:14 +0000)]
Add test case to show that Clang now checks the format string
arguments of asprintf (<rdar://problem/6657191>).

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

14 years agoc-index-test: Pass appropriate client data.
Daniel Dunbar [Tue, 16 Feb 2010 01:55:10 +0000 (01:55 +0000)]
c-index-test: Pass appropriate client data.

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

14 years agoASTUnit: Constant fold UseBumpAllocator to true, we don't care to support this as...
Daniel Dunbar [Tue, 16 Feb 2010 01:55:04 +0000 (01:55 +0000)]
ASTUnit: Constant fold UseBumpAllocator to true, we don't care to support this as an argument.

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

14 years agoASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation.
Daniel Dunbar [Tue, 16 Feb 2010 01:54:54 +0000 (01:54 +0000)]
ASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation.

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

14 years agoCompilerInstance: Move LLVMContext member out of constructor.
Daniel Dunbar [Tue, 16 Feb 2010 01:54:47 +0000 (01:54 +0000)]
CompilerInstance: Move LLVMContext member out of constructor.

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

14 years agoSwitch clang to use its own LLVMContext (not the global one).
Daniel Dunbar [Tue, 16 Feb 2010 01:54:33 +0000 (01:54 +0000)]
Switch clang to use its own LLVMContext (not the global one).

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

14 years agoFix test case.
Ted Kremenek [Tue, 16 Feb 2010 01:47:05 +0000 (01:47 +0000)]
Fix test case.

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

14 years agoRefactor the logic for printf argument type-checking into analyze_printf::ArgTypeResult.
Ted Kremenek [Tue, 16 Feb 2010 01:46:59 +0000 (01:46 +0000)]
Refactor the logic for printf argument type-checking into analyze_printf::ArgTypeResult.
Implement printf argument type checking for '%s'.

Fixes <rdar://problem/3065808>.

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

14 years agoAdded 'AsWideChar' flag to LengthModifier.
Ted Kremenek [Tue, 16 Feb 2010 01:46:47 +0000 (01:46 +0000)]
Added 'AsWideChar' flag to LengthModifier.

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

14 years agoSkeleton for importing Objective-C classes
Douglas Gregor [Tue, 16 Feb 2010 01:20:57 +0000 (01:20 +0000)]
Skeleton for importing Objective-C classes

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

14 years agomark __builtin_longjmp noreturn, PR6312
Chris Lattner [Tue, 16 Feb 2010 00:23:21 +0000 (00:23 +0000)]
mark __builtin_longjmp noreturn, PR6312

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

14 years agoDon't import __va_list_tag or __builtin_va_list when merging
Douglas Gregor [Tue, 16 Feb 2010 00:04:46 +0000 (00:04 +0000)]
Don't import __va_list_tag or __builtin_va_list when merging

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

14 years agoCope with anonymous tags defined within declarators by structurally
Douglas Gregor [Mon, 15 Feb 2010 23:54:17 +0000 (23:54 +0000)]
Cope with anonymous tags defined within declarators by structurally
comparing their types under the assumption that they are equivalent,
rather than importing the types and then checking for compatibility. A
few minor tweaks here:
  - Teach structural matching to handle compatibility between
  function types with prototypes and those without prototypes.
  - Teach structural matching that an incomplete record decl is the
  same as any other record decl with the same name.
  - Keep track of pairs of declarations that we have already checked
  (but failed to find as structurally matching), so we don't emit
  diagnostics repeatedly.
  - When importing a typedef of an anonymous tag, be sure to link the
  imported tag type to its typedef.

With these changes, we survive a repeated import of <stdlib.h> and
<stdio.h>. Alas, the ASTNodeImporter is getting a little grotty.

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

14 years agoConvert GRExprEngine's handling of ObjCMessageExprs to use a worklist
Ted Kremenek [Mon, 15 Feb 2010 23:02:46 +0000 (23:02 +0000)]
Convert GRExprEngine's handling of ObjCMessageExprs to use a worklist
to evaluate arguments.

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

14 years agoAdd Sema support for __builtin_fpclassify by extending the existing check for __built...
Benjamin Kramer [Mon, 15 Feb 2010 22:42:31 +0000 (22:42 +0000)]
Add Sema support for __builtin_fpclassify by extending the existing check for __builtin_isinf and friends. Part of PR6083.

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

14 years agoIssue a bettter diagnostics for incorrect property setter name.
Fariborz Jahanian [Mon, 15 Feb 2010 22:20:11 +0000 (22:20 +0000)]
Issue a bettter diagnostics for incorrect property setter name.
(radar 7647953).

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

14 years agoFix instantiation of template functions with local classes that contain virtual
Chandler Carruth [Mon, 15 Feb 2010 22:12:26 +0000 (22:12 +0000)]
Fix instantiation of template functions with local classes that contain virtual
methods.

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

14 years agoTell ASTMerge to merge every declaration it sees, rather than cherry-picking those...
Douglas Gregor [Mon, 15 Feb 2010 22:05:17 +0000 (22:05 +0000)]
Tell ASTMerge to merge every declaration it sees, rather than cherry-picking those declarations that we know will work.

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

14 years agoReimplement the structural-equality checks used to determine whether
Douglas Gregor [Mon, 15 Feb 2010 22:01:00 +0000 (22:01 +0000)]
Reimplement the structural-equality checks used to determine whether
two types in different AST contexts are equivalent. Rather than
transforming the type from one context into the other context, we
perform a deep structural comparison of the types. This change
addresses a serious problem with recursive data types like

  struct ListNode {
    int value;
    struct ListNode *Next;
  } xList;

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

14 years agoClass continuation now has its own property ast for
Fariborz Jahanian [Mon, 15 Feb 2010 21:55:26 +0000 (21:55 +0000)]
Class continuation now has its own property ast for
those declared in it. This is to allow duplicate
property diagnostics for properties declared in class extensions
multiple times (radar 7629420) and for future use.

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

14 years agoTest to compile the rewritten file for my last patch.
Fariborz Jahanian [Mon, 15 Feb 2010 21:37:11 +0000 (21:37 +0000)]
Test to compile the rewritten file for my last patch.
(radar 7649577 related).

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

14 years agoFix a broken rewritin of @implementation keyword.
Fariborz Jahanian [Mon, 15 Feb 2010 21:11:41 +0000 (21:11 +0000)]
Fix a broken rewritin of @implementation keyword.
(fixes radar 7649577).

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

14 years agoOptimize the implementation of IdDeclInfo pooling in the IdentifierResolver.
John McCall [Mon, 15 Feb 2010 19:38:00 +0000 (19:38 +0000)]
Optimize the implementation of IdDeclInfo pooling in the IdentifierResolver.

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

14 years agoUse getLocStart(), instead of getLocEnd(), to record starting location of objc method. :)
Devang Patel [Mon, 15 Feb 2010 18:08:38 +0000 (18:08 +0000)]
Use getLocStart(), instead of getLocEnd(), to record starting location of objc method. :)

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

14 years agoreverting back 96242 as it still causes a test failure.
Sanjiv Gupta [Mon, 15 Feb 2010 18:02:12 +0000 (18:02 +0000)]
reverting back 96242 as it still causes a test failure.

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

14 years agoRe-applying 96173 with corresponding changes in test.
Sanjiv Gupta [Mon, 15 Feb 2010 17:19:13 +0000 (17:19 +0000)]
Re-applying 96173 with corresponding changes in test.

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

14 years agoUniformize the names of type predicates: rather than having isFloatTy and
Duncan Sands [Mon, 15 Feb 2010 16:14:01 +0000 (16:14 +0000)]
Uniformize the names of type predicates: rather than having isFloatTy and
isInteger, we now have isFloatTy and isIntegerTy.  Requested by Chris!

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

14 years agoDefer covariance checks for dependent types. Add test cases that also ensure
Chandler Carruth [Mon, 15 Feb 2010 11:53:20 +0000 (11:53 +0000)]
Defer covariance checks for dependent types. Add test cases that also ensure
they are re-checked on instantiation.

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

14 years agoSimplify code. If we can reach here, the base must be virtual.
Zhongxing Xu [Mon, 15 Feb 2010 04:28:35 +0000 (04:28 +0000)]
Simplify code. If we can reach here, the base must be virtual.

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

14 years agoWhen emitting an aggregate into a temporary, make sure we set the alignment
John McCall [Mon, 15 Feb 2010 01:23:36 +0000 (01:23 +0000)]
When emitting an aggregate into a temporary, make sure we set the alignment
on the alloca.

The fact that codegen makes this class of bug so wonderfully easy to make is
embarrassing.

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

14 years agoclang::Attr objects should be treated as AST nodes as well by
Ted Kremenek [Sun, 14 Feb 2010 22:58:16 +0000 (22:58 +0000)]
clang::Attr objects should be treated as AST nodes as well by
the LLVMConventionsChecker.

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

14 years agoAdd LLVM conventions check that scans for AST elements (types, stmts, decls)
Ted Kremenek [Sun, 14 Feb 2010 19:09:13 +0000 (19:09 +0000)]
Add LLVM conventions check that scans for AST elements (types, stmts, decls)
that allocate heap memory.

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

14 years agoChange LLVMConventionsChecker to accept an entire translation unit instead
Ted Kremenek [Sun, 14 Feb 2010 19:09:05 +0000 (19:09 +0000)]
Change LLVMConventionsChecker to accept an entire translation unit instead
of operating on each code decl.  This exposes two flaws in AnalysisConsumer
that should eventually be fixed:

(1) It is not possible to associate multiple "actions" with a single
    command line argument.  This will require the notion of an
"analysis" group, and possibly tablegen support.  (although eventually
    we want to support dynamically loading analyses as well)

(2) AnalysisConsumer may not actually be scanning the declarations in namespaces.
    We'll experiment first in LLVMConventionsChecker before changing the
    behavior in AnalysisConsumer.

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

14 years agoRework translation unit actions to actually take an entire translation unit
Ted Kremenek [Sun, 14 Feb 2010 19:08:51 +0000 (19:08 +0000)]
Rework translation unit actions to actually take an entire translation unit
as imput.

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

14 years agoFor the StringRef check, also visit the children of DeclStmts.
Ted Kremenek [Sun, 14 Feb 2010 19:08:43 +0000 (19:08 +0000)]
For the StringRef check, also visit the children of DeclStmts.

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

14 years agoPlace type-checking static methods at type of file (where they will congregate).
Ted Kremenek [Sun, 14 Feb 2010 19:08:36 +0000 (19:08 +0000)]
Place type-checking static methods at type of file (where they will congregate).
No functionality change.

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

14 years agotemporarily revert 96173, it is causing test failures.
Chris Lattner [Sun, 14 Feb 2010 18:38:38 +0000 (18:38 +0000)]
temporarily revert 96173, it is causing test failures.

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

14 years agorenamed pic16 specifiic macros.
Sanjiv Gupta [Sun, 14 Feb 2010 18:20:18 +0000 (18:20 +0000)]
renamed pic16 specifiic macros.

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

14 years agoDon't compute final overriders or build vtables for bases that don't need a vtable.
Anders Carlsson [Sun, 14 Feb 2010 17:05:59 +0000 (17:05 +0000)]
Don't compute final overriders or build vtables for bases that don't need a vtable.

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

14 years agoPass StringRefs to InsertText/ReplaceText in RewriteObjC and remove a ton of unnecess...
Benjamin Kramer [Sun, 14 Feb 2010 14:14:16 +0000 (14:14 +0000)]
Pass StringRefs to InsertText/ReplaceText in RewriteObjC and remove a ton of unnecessary length arguments.

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

14 years agoCIndex: Switch CXSourceRange to proper half-open intervals.
Daniel Dunbar [Sun, 14 Feb 2010 10:02:57 +0000 (10:02 +0000)]
CIndex: Switch CXSourceRange to proper half-open intervals.
 - Doug, please review.

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

14 years agoCIndex: Avoid an unnecessary getLocForEndOfToken call, the region of interest
Daniel Dunbar [Sun, 14 Feb 2010 10:02:42 +0000 (10:02 +0000)]
CIndex: Avoid an unnecessary getLocForEndOfToken call, the region of interest
doesn't need to be a full token.
 - Doug, please review.

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

14 years agoc-index-test: Unify and always print half-open extents.
Daniel Dunbar [Sun, 14 Feb 2010 08:32:51 +0000 (08:32 +0000)]
c-index-test: Unify and always print half-open extents.

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

14 years agoc-index-test: Simplify file scanning code.
Daniel Dunbar [Sun, 14 Feb 2010 08:32:32 +0000 (08:32 +0000)]
c-index-test: Simplify file scanning code.

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

14 years agoc-index-test: Unify syntax for printing extents. Yes, there were 4.
Daniel Dunbar [Sun, 14 Feb 2010 08:32:24 +0000 (08:32 +0000)]
c-index-test: Unify syntax for printing extents. Yes, there were 4.

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

14 years agoCIndex: Simplify (remove provably dead code).
Daniel Dunbar [Sun, 14 Feb 2010 08:32:11 +0000 (08:32 +0000)]
CIndex: Simplify (remove provably dead code).

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

14 years agoCIndex: Inline CompareRegionOfInterest(CXSourceRange) into sole caller.
Daniel Dunbar [Sun, 14 Feb 2010 08:32:05 +0000 (08:32 +0000)]
CIndex: Inline CompareRegionOfInterest(CXSourceRange) into sole caller.

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

14 years agoRename translateSourceRange(CXSourceRange) translateCXSourceRange, instead of
Daniel Dunbar [Sun, 14 Feb 2010 08:31:57 +0000 (08:31 +0000)]
Rename translateSourceRange(CXSourceRange) translateCXSourceRange, instead of
having overloaded functions with inverse semantics.

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

14 years agoFix pr6293. If ptr is NULL, no operation is preformed.
Zhongxing Xu [Sun, 14 Feb 2010 06:49:48 +0000 (06:49 +0000)]
Fix pr6293. If ptr is NULL, no operation is preformed.

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

14 years agoAdd new static analyzer for checking LLVM coding conventions: -analyzer-check-llvm...
Ted Kremenek [Sun, 14 Feb 2010 02:45:18 +0000 (02:45 +0000)]
Add new static analyzer for checking LLVM coding conventions: -analyzer-check-llvm-conventions

Currently these checks are intended to be largely syntactical, but may get more
sophisticated over time.

As an initial foray into this brave new world, emit a static analyzer warning
when binding a temporary 'std::string' to an 'llvm::StringRef' where the
lifetime of the 'std::string' does not outlive the 'llvm::StringRef'.

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

14 years agoTwo changes to AnalysisConsumer::HandleTopLevelSingleDecl():
Ted Kremenek [Sun, 14 Feb 2010 02:44:52 +0000 (02:44 +0000)]
Two changes to AnalysisConsumer::HandleTopLevelSingleDecl():

(1) Since CXXMethodDecl subclasses FunctionDecl (and CXXDestructorDecl
and CXXConversion subclass CXXMethodDecl), refactor switch statement
to handle them all in one spot.

(2) Use 'DeclarationName::getAsString()' to handle all functions that
don't have simple identifiers (fixing a null dereference when scanning
for specific functions).

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

14 years agoCIndex: Kill off CXSourceLocationPtr, and AtEnd arguments.
Daniel Dunbar [Sun, 14 Feb 2010 01:47:36 +0000 (01:47 +0000)]
CIndex: Kill off CXSourceLocationPtr, and AtEnd arguments.

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

14 years agoCIndex: Stop hiding magic end bit in CXSourceRange locations where clients can't
Daniel Dunbar [Sun, 14 Feb 2010 01:47:29 +0000 (01:47 +0000)]
CIndex: Stop hiding magic end bit in CXSourceRange locations where clients can't
see it. Instead, translate the locations up-front when we create a
CXSourceRange.
 - This is part of a move to make CXSourceRange a pure half-open range, which is
   a more natural API for clients to deal with. More cleanups to follow.

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

14 years agoImprove the diagnostic given when referring to a tag type without a tag (in C)
John McCall [Sun, 14 Feb 2010 01:03:10 +0000 (01:03 +0000)]
Improve the diagnostic given when referring to a tag type without a tag (in C)
or that's been hidden by a non-type (in C++).

The ideal C++ diagnostic here would note the hiding declaration, but this
is a good start.

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

14 years agoBuild fix.
Anders Carlsson [Sun, 14 Feb 2010 00:44:19 +0000 (00:44 +0000)]
Build fix.

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

14 years agoBaby steps towards teaching FinalOverriders about virtual bases.
Anders Carlsson [Sun, 14 Feb 2010 00:37:35 +0000 (00:37 +0000)]
Baby steps towards teaching FinalOverriders about virtual bases.

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

14 years agoDon't try to layout construction vtables for now.
Anders Carlsson [Sun, 14 Feb 2010 00:22:59 +0000 (00:22 +0000)]
Don't try to layout construction vtables for now.

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

14 years agoImprove support for non-virtual 'this' pointer adjustments. With this, it should...
Anders Carlsson [Sun, 14 Feb 2010 00:16:19 +0000 (00:16 +0000)]
Improve support for non-virtual 'this' pointer adjustments. With this, it should be possible to use the new vtable layout code for all class hierarchies that do not involve virtual bases.

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

14 years agoAdd basic support for simple non-virtual 'this' pointer adjustments.
Anders Carlsson [Sat, 13 Feb 2010 23:40:17 +0000 (23:40 +0000)]
Add basic support for simple non-virtual 'this' pointer adjustments.

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

14 years agoAdd support for very simple non-virtual this adjustments in the FinalOverriders class.
Anders Carlsson [Sat, 13 Feb 2010 23:17:31 +0000 (23:17 +0000)]
Add support for very simple non-virtual this adjustments in the FinalOverriders class.

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

14 years agoCleanup; remove some duplicated code.
Anders Carlsson [Sat, 13 Feb 2010 22:39:18 +0000 (22:39 +0000)]
Cleanup; remove some duplicated code.

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

14 years agoAssert if we encounter this adjustments.
Anders Carlsson [Sat, 13 Feb 2010 22:23:31 +0000 (22:23 +0000)]
Assert if we encounter this adjustments.

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

14 years agoStart laying out secondary vtables.
Anders Carlsson [Sat, 13 Feb 2010 22:05:23 +0000 (22:05 +0000)]
Start laying out secondary vtables.

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

14 years agoMerge base offsets and dump them.
Anders Carlsson [Sat, 13 Feb 2010 21:33:22 +0000 (21:33 +0000)]
Merge base offsets and dump them.

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

14 years agoDon't make return adjustments for pure virtual member functions.
Anders Carlsson [Sat, 13 Feb 2010 21:16:54 +0000 (21:16 +0000)]
Don't make return adjustments for pure virtual member functions.

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

14 years agoHandle virtual bases in return adjustment types.
Anders Carlsson [Sat, 13 Feb 2010 21:07:32 +0000 (21:07 +0000)]
Handle virtual bases in return adjustment types.

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

14 years agoHandle virtual bases in ComputeBaseOffset.
Anders Carlsson [Sat, 13 Feb 2010 20:41:15 +0000 (20:41 +0000)]
Handle virtual bases in ComputeBaseOffset.

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

14 years agoAdd newline.
Daniel Dunbar [Sat, 13 Feb 2010 20:24:39 +0000 (20:24 +0000)]
Add newline.

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

14 years agoMore work on covariant return types. We now handle non-virtual adjustments fine.
Anders Carlsson [Sat, 13 Feb 2010 20:11:51 +0000 (20:11 +0000)]
More work on covariant return types. We now handle non-virtual adjustments fine.

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

14 years agoadd support for t Fedora 12 (February 2010), patch by
Chris Lattner [Sat, 13 Feb 2010 19:18:26 +0000 (19:18 +0000)]
add support for t Fedora 12 (February 2010), patch by
Dyachenko Dmitry.  Our system is "not so elegant" here.

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

14 years agocindex/Python: Fix cindex-{dump,includes} examples to just pass all args
Daniel Dunbar [Sat, 13 Feb 2010 18:33:28 +0000 (18:33 +0000)]
cindex/Python: Fix cindex-{dump,includes} examples to just pass all args
directly to Index, instead of requiring the input file to be first. This makes
the examples behave more like 'clang'.

For example,
  ddunbar@giles:tmp$ echo '#include <string>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c++ - | wc -l
     114
  ddunbar@giles:tmp$ echo '#include <stdio.h>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c - | wc -l
      10

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

14 years agocindex/Python: Add TranslationUnit.get_includes, patch by Andrew Sutton!
Daniel Dunbar [Sat, 13 Feb 2010 18:33:18 +0000 (18:33 +0000)]
cindex/Python: Add TranslationUnit.get_includes, patch by Andrew Sutton!

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

14 years agocindex/Python: Update for clang_getDiagnosticRange... API changes.
Daniel Dunbar [Sat, 13 Feb 2010 18:33:03 +0000 (18:33 +0000)]
cindex/Python: Update for clang_getDiagnosticRange... API changes.

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

14 years agoEmit the 'alignstack' LLVM function attribute when we encounter a function
Charles Davis [Sat, 13 Feb 2010 15:54:06 +0000 (15:54 +0000)]
Emit the 'alignstack' LLVM function attribute when we encounter a function
marked 'force_align_arg_pointer'. Almost there; now all I need to do is finish
up the backend.

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

14 years agoFix think-o, attributes can't come *within* the type of the variable.
Chandler Carruth [Sat, 13 Feb 2010 10:42:55 +0000 (10:42 +0000)]
Fix think-o, attributes can't come *within* the type of the variable.

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

14 years agoSilence unused variable warning in a build without assertions.
Chandler Carruth [Sat, 13 Feb 2010 10:38:52 +0000 (10:38 +0000)]
Silence unused variable warning in a build without assertions.

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

14 years agoSkip implicit instantiation of templated variables where a more recent
Chandler Carruth [Sat, 13 Feb 2010 10:17:50 +0000 (10:17 +0000)]
Skip implicit instantiation of templated variables where a more recent
redeclaration provides an explicit instantiation or is invalid.

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

14 years agoRemove dead {include, semicolon, variable}.
Benjamin Kramer [Sat, 13 Feb 2010 09:15:07 +0000 (09:15 +0000)]
Remove dead {include, semicolon, variable}.

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

14 years agoUse a different name for this iterator. MSVC and clang++ didn't like "I" in the same...
Benjamin Kramer [Sat, 13 Feb 2010 09:11:28 +0000 (09:11 +0000)]
Use a different name for this iterator. MSVC and clang++ didn't like "I" in the same scope twice.

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

14 years agoSilence a GCC warning about a possibly uninitialized variable. It's data flow
Chandler Carruth [Sat, 13 Feb 2010 07:23:01 +0000 (07:23 +0000)]
Silence a GCC warning about a possibly uninitialized variable. It's data flow
only flows so far it seems.

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

14 years agoFix a fiendinshly fun little type-canonicalization bug, where we were
Douglas Gregor [Sat, 13 Feb 2010 06:05:33 +0000 (06:05 +0000)]
Fix a fiendinshly fun little type-canonicalization bug, where we were
rebuilding a typename type terminating in a template-id (with
dependent template name, naturally) as a TypenameType when, because
its context could be fully resolved, we should have been building it
as a QualifiedNameType. Fixes PR6268.

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