]> granicus.if.org Git - clang/log
clang
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

14 years agoPermit the use of typedefs of class template specializations in
Douglas Gregor [Sat, 13 Feb 2010 05:23:25 +0000 (05:23 +0000)]
Permit the use of typedefs of class template specializations in
qualified declarator-ids. This patch is actually due to Cornelius;
fixes PR6179.

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

14 years agoRaise the responsibility for passing -disable-llvm-verifier in NDEBUG builds
John McCall [Sat, 13 Feb 2010 03:50:24 +0000 (03:50 +0000)]
Raise the responsibility for passing -disable-llvm-verifier in NDEBUG builds
to the driver, and support it in CodeGenOptsToArgs().  Note that this changes
the default behavior of clang -cc1 to always run the verifier.

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

14 years agoMore work on return type adjustments in the new vtable builder.
Anders Carlsson [Sat, 13 Feb 2010 02:02:03 +0000 (02:02 +0000)]
More work on return type adjustments in the new vtable builder.

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

14 years agoEnhance RegionStore::InvalidateRegions() to correctly invalidate bindings
Ted Kremenek [Sat, 13 Feb 2010 01:52:33 +0000 (01:52 +0000)]
Enhance RegionStore::InvalidateRegions() to correctly invalidate bindings
by scanning through the values of LazyCompoundVals.

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

14 years agoSwitch the standard DeclarationName comparator to be a tri-valued comparator.
John McCall [Sat, 13 Feb 2010 01:04:05 +0000 (01:04 +0000)]
Switch the standard DeclarationName comparator to be a tri-valued comparator.
Use that while fixing a nasty misuse of qsort in vtable codegen which, somehow,
has not actually caused a crash.

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

14 years agoPull logic for visiting value bindings in InvalidateRegionsWorker into a separate...
Ted Kremenek [Sat, 13 Feb 2010 00:54:03 +0000 (00:54 +0000)]
Pull logic for visiting value bindings in InvalidateRegionsWorker into a separate method.
No functionality change.

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

14 years agoFix for PR6274: teach constant folding to evaluate __builtin_expect.
Eli Friedman [Sat, 13 Feb 2010 00:10:10 +0000 (00:10 +0000)]
Fix for PR6274: teach constant folding to evaluate __builtin_expect.

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

14 years agoif-0 out printf.
Eli Friedman [Sat, 13 Feb 2010 00:03:21 +0000 (00:03 +0000)]
if-0 out printf.

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

14 years agoAdd an option to disable the LLVM verifier pass (which is still always
John McCall [Fri, 12 Feb 2010 23:47:27 +0000 (23:47 +0000)]
Add an option to disable the LLVM verifier pass (which is still always
disabled in NDEBUG builds).  The option applies only to -cc1 invocations and is:
  -disable_llvm_verifier

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

14 years agoFunnel changes to the ImportedDecls list in the ASTImporter through a
Douglas Gregor [Fri, 12 Feb 2010 23:44:20 +0000 (23:44 +0000)]
Funnel changes to the ImportedDecls list in the ASTImporter through a
single Imported function, in preparation for fixing a serious design
flaw.

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

14 years agoFix bug I introduced with assinging a temporary to a StringRef.
Ted Kremenek [Fri, 12 Feb 2010 23:31:14 +0000 (23:31 +0000)]
Fix bug I introduced with assinging a temporary to a StringRef.

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

14 years agoMake the following functions thread-safe but having them return an std::string that...
Ted Kremenek [Fri, 12 Feb 2010 22:54:40 +0000 (22:54 +0000)]
Make the following functions thread-safe but having them return an std::string that is reconstructed
every time they are called:

getClangRevision()
getClangFullRepositoryVersion()
getClangFullVersion()

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

14 years agoImplement AST importing and merging for enumeration types and
Douglas Gregor [Fri, 12 Feb 2010 22:17:39 +0000 (22:17 +0000)]
Implement AST importing and merging for enumeration types and
enumerators, along with ImplicitCastExprs to make it work.

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

14 years agoComplain if block-literal expression's parameter name is
Fariborz Jahanian [Fri, 12 Feb 2010 21:53:14 +0000 (21:53 +0000)]
Complain if block-literal expression's parameter name is
missing (in c/objc mode). Fixes radar 7528255.

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

14 years ago(1) Correctly format external Javascript link.
Ted Kremenek [Fri, 12 Feb 2010 21:05:44 +0000 (21:05 +0000)]
(1) Correctly format external Javascript link.
(2) Reformat "annotations" topics list to use a collapsable tree.

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

14 years agoDon't error when setting a sub-structure variable via objc properties
Fariborz Jahanian [Fri, 12 Feb 2010 21:02:28 +0000 (21:02 +0000)]
Don't error when setting  a sub-structure variable via objc properties
in objective-c++ mode (do it for objective-c only).

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

14 years agofix a bug in SourceManager::getInstantiationLocSlowCase, where
Chris Lattner [Fri, 12 Feb 2010 19:31:35 +0000 (19:31 +0000)]
fix a bug in SourceManager::getInstantiationLocSlowCase, where
we'd add an offset from the spelling location space to the
instantiation location, which doesn't make sense and would
lead up to the text diagnostics crashing when presented with
non-sensical locations.

This fixes rdar://7597492, a crash on 255.vortex.

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

14 years agoPatch to fix a warning which exposed a bug in building
Fariborz Jahanian [Fri, 12 Feb 2010 19:27:33 +0000 (19:27 +0000)]
Patch to fix a warning which exposed a bug in building
a qualified objective-c pointer type. Fixes radar 7638810.
(Also removes a FIXME).

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

14 years agorestructure code a bit: there are two potential issues
Chris Lattner [Fri, 12 Feb 2010 18:52:52 +0000 (18:52 +0000)]
restructure code a bit: there are two potential issues
worth asserting about in this code: 1) if the source range
is bogus (begin loc after end loc), and 2) if the client
is trying to highlight a range that is purely whitespace.

It is possible to just silently ignore #2, but it seems like
it is always a bug, so lets keep asserting on this condition,
but with a better assert message.

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

14 years agoFix a refacto that broke the clang-on-clang build.
Anders Carlsson [Fri, 12 Feb 2010 18:14:46 +0000 (18:14 +0000)]
Fix a refacto that broke the clang-on-clang build.

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

14 years agoFixes a rewriter bug rewriting function decl.
Fariborz Jahanian [Fri, 12 Feb 2010 17:52:31 +0000 (17:52 +0000)]
Fixes a rewriter bug rewriting function decl.
with block-pointer-type as one or more of its
arguments. Fixes radar 7638400.

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

14 years agoImprove representation of tag declarations first declared or defined
Douglas Gregor [Fri, 12 Feb 2010 17:40:34 +0000 (17:40 +0000)]
Improve representation of tag declarations first declared or defined
within the declarator of another declaration, from Enea Zaffanella!

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

14 years agoStart stubbing out more of the covariant thunk support.
Anders Carlsson [Fri, 12 Feb 2010 17:37:14 +0000 (17:37 +0000)]
Start stubbing out more of the covariant thunk support.

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

14 years agoImprove documentation for DependentTypeOfExprType, DependentDecltypeType. No function...
Douglas Gregor [Fri, 12 Feb 2010 17:28:41 +0000 (17:28 +0000)]
Improve documentation for DependentTypeOfExprType, DependentDecltypeType. No functionality change.

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

14 years agoSimplify incomplete-array merging code in the AST importer, thanks to
Douglas Gregor [Fri, 12 Feb 2010 17:23:39 +0000 (17:23 +0000)]
Simplify incomplete-array merging code in the AST importer, thanks to
Daniel's suggestion.

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

14 years agoFix a latent bug found by Ahmed Charles, where we were calling
Douglas Gregor [Fri, 12 Feb 2010 17:17:28 +0000 (17:17 +0000)]
Fix a latent bug found by Ahmed Charles, where we were calling
ASTContext::getFunctionType with the wrong set of arguments.

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

14 years agoKeep track of whether a final overrider needs a return type adjustment.
Anders Carlsson [Fri, 12 Feb 2010 17:13:23 +0000 (17:13 +0000)]
Keep track of whether a final overrider needs a return type adjustment.

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

14 years agoMove overrider out into a separate struct.
Anders Carlsson [Fri, 12 Feb 2010 16:55:34 +0000 (16:55 +0000)]
Move overrider out into a separate struct.

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

14 years agoFix PR6282: the include guard optimization cannot happen if the
Chris Lattner [Fri, 12 Feb 2010 08:03:27 +0000 (08:03 +0000)]
Fix PR6282: the include guard optimization cannot happen if the
guard macro is already defined for the first occurrence of the
header.  If it is, the body will be skipped and not be properly
analyzed for the include guard optimization.

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

14 years agoKeep track of the address points for all primary bases, and add the ability to dump...
Anders Carlsson [Fri, 12 Feb 2010 07:43:48 +0000 (07:43 +0000)]
Keep track of the address points for all primary bases, and add the ability to dump multiple address points for a single offset.

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

14 years agoWork around an annoying, non-standard optimization in the glibc
Douglas Gregor [Fri, 12 Feb 2010 07:32:17 +0000 (07:32 +0000)]
Work around an annoying, non-standard optimization in the glibc
headers, where malloc (and many other libc functions) are declared
with empty throw specifications, e.g.,

  extern void *malloc (__SIZE_TYPE__ __size) throw () __attribute__
  ((__malloc__)) ;

The C++ standard doesn't seem to allow this, and redeclaring malloc as
the standard permits (as follows) resulted in Clang (rightfully!)
complaining about mis-matched exception specifications.

  void *malloc(size_t size);

We work around this by silently propagating an empty throw
specification "throw()" from a function with C linkage declared in a
system header to a redeclaration that has no throw specifier.

Ick.

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

14 years agoFix a bug causing an assertion when a covariant return type differed from
John McCall [Fri, 12 Feb 2010 06:15:07 +0000 (06:15 +0000)]
Fix a bug causing an assertion when a covariant return type differed from
an overriden type only by reduced qualification.

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

14 years agoImprove a test slightly
Douglas Gregor [Fri, 12 Feb 2010 06:08:51 +0000 (06:08 +0000)]
Improve a test slightly

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

14 years agoIn C++, allow builtins to be referred to via qualified name lookup, e.g.,
Douglas Gregor [Fri, 12 Feb 2010 05:48:04 +0000 (05:48 +0000)]
In C++, allow builtins to be referred to via qualified name lookup, e.g.,

  ::__builtin_va_copy

Fixes one of the Firefox issues in PR5511.

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

14 years agoMore work on vtable layout. We can now layout vtables with primary bases.
Anders Carlsson [Fri, 12 Feb 2010 05:25:12 +0000 (05:25 +0000)]
More work on vtable layout. We can now layout vtables with primary bases.

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

14 years agoWaste two bits in every clang::Type so that the type class can be read
John McCall [Fri, 12 Feb 2010 03:41:30 +0000 (03:41 +0000)]
Waste two bits in every clang::Type so that the type class can be read
in a single byte-load rather than some crazy bitmunging operation.

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

14 years agoWhen dumping vtables, dump whether a virtual member function is pure or not.
Anders Carlsson [Fri, 12 Feb 2010 02:38:13 +0000 (02:38 +0000)]
When dumping vtables, dump whether a virtual member function is pure or not.

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

14 years agoMore work on the final overriders.
Anders Carlsson [Fri, 12 Feb 2010 01:40:03 +0000 (01:40 +0000)]
More work on the final overriders.

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

14 years agoDo not ignore anonymous records.
Devang Patel [Fri, 12 Feb 2010 01:31:06 +0000 (01:31 +0000)]
Do not ignore anonymous records.

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

14 years agoCache new compile unit.
Devang Patel [Fri, 12 Feb 2010 01:30:31 +0000 (01:30 +0000)]
Cache new compile unit.

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

14 years agoTwo changes to scan-build:
Ted Kremenek [Fri, 12 Feb 2010 00:12:25 +0000 (00:12 +0000)]
Two changes to scan-build:

(1) When no 'clang' is found with 'scan-build', remember the one from
the path as scan-build sees it, not the build system.  This prevents
us from finding different clangs during the build.

(2) Don't set LDPLUSPLUS when running xcodebuild; instead rely on the
clang driver to do the right thing.

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

14 years agoAdd comments.
Ted Kremenek [Fri, 12 Feb 2010 00:10:34 +0000 (00:10 +0000)]
Add comments.

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

14 years agoHandle AST merges of incomplete class types.
Douglas Gregor [Fri, 12 Feb 2010 00:09:27 +0000 (00:09 +0000)]
Handle AST merges of incomplete class types.

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

14 years agoImplementing unused function warning.
Tanya Lattner [Fri, 12 Feb 2010 00:07:30 +0000 (00:07 +0000)]
Implementing unused function warning.

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

14 years agoWarn about using the new force_align_arg_pointer attribute on a function
Charles Davis [Thu, 11 Feb 2010 23:57:08 +0000 (23:57 +0000)]
Warn about using the new force_align_arg_pointer attribute on a function
pointer. If you don't like the new warning, you can turn it off with
-Wno-force-align-arg-pointer.

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

14 years agoFixes a rewriting bug where order of constructor expression arguments did not match
Fariborz Jahanian [Thu, 11 Feb 2010 23:35:57 +0000 (23:35 +0000)]
Fixes a rewriting bug where order of constructor expression arguments did not match
order of constructor arguments (all block API specific). This was exposed only in
a large block literal expression in a large file where PtrSet container size
execceded its limit and required reallocation.  Fixes radar 7638294

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

14 years agoWhen we have a dependent direct initializer but not a dependent
Douglas Gregor [Thu, 11 Feb 2010 22:55:30 +0000 (22:55 +0000)]
When we have a dependent direct initializer but not a dependent
variable type, we can (and should) still check for completeness of the
variable's type. Do so, to work around an assertion that shows up in
Boost's shared_ptr.

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

14 years agoFix leak in CXXNewExpr where the SubExprs array would get allocated directly using...
Ted Kremenek [Thu, 11 Feb 2010 22:51:03 +0000 (22:51 +0000)]
Fix leak in CXXNewExpr where the SubExprs array would get allocated directly using 'new[]' instead of the allocator associated with ASTContext.

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

14 years agoMake this test not rely on the system <limits.h>. Hopefully fixes the
John McCall [Thu, 11 Feb 2010 22:45:16 +0000 (22:45 +0000)]
Make this test not rely on the system <limits.h>.  Hopefully fixes the
MSVC build.

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

14 years agoFix re-allocation in AttrWithString::ReplaceString() to use the allocator assosciated...
Ted Kremenek [Thu, 11 Feb 2010 22:44:22 +0000 (22:44 +0000)]
Fix re-allocation in AttrWithString::ReplaceString() to use the allocator assosciated with ASTContext.

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

14 years agoAllocate the SubExprs array in ObjCMessageExpr using the allocator associated with...
Ted Kremenek [Thu, 11 Feb 2010 22:41:21 +0000 (22:41 +0000)]
Allocate the SubExprs array in ObjCMessageExpr using the allocator associated with ASTContext.  This fixes yet another leak (<rdar://problem/7639260>).

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

14 years agoStub out the final overriders class.
Anders Carlsson [Thu, 11 Feb 2010 21:24:32 +0000 (21:24 +0000)]
Stub out the final overriders class.

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

14 years agoUse getAs instead of cast/dyn_cast on types. (I'm sure Doug will appreciate this).
Anders Carlsson [Thu, 11 Feb 2010 19:45:15 +0000 (19:45 +0000)]
Use getAs instead of cast/dyn_cast on types. (I'm sure Doug will appreciate this).

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

14 years agoMove two functions to the top. No functionality change.
Anders Carlsson [Thu, 11 Feb 2010 19:39:49 +0000 (19:39 +0000)]
Move two functions to the top. No functionality change.

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

14 years agoUncomment lines I never meant to have left commented in a commit.
Ted Kremenek [Thu, 11 Feb 2010 19:37:25 +0000 (19:37 +0000)]
Uncomment lines I never meant to have left commented in a commit.

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

14 years agoWhen AST merging for record declarations fails, warn about the
Douglas Gregor [Thu, 11 Feb 2010 19:21:55 +0000 (19:21 +0000)]
When AST merging for record declarations fails, warn about the
incompatibility and show where the structural differences are. For
example:

struct1.c:36:8: warning: type 'struct S7' has incompatible definitions
in different translation units
struct S7 { int i : 8; unsigned j : 8; } x7;
       ^
struct1.c:36:33: note: bit-field 'j' with type 'unsigned int' and length 8 here
struct S7 { int i : 8; unsigned j : 8; } x7;
                                ^
struct2.c:33:33: note: bit-field 'j' with type 'unsigned int' and length 16 here
struct S7 { int i : 8; unsigned j : 16; } x7;
                                ^

There are a few changes to make this work:
  - ASTImporter now has only a single Diagnostic object, not multiple
  diagnostic objects. Otherwise, having a warning/error printed via
  one Diagnostic and its note printed on the other Diagnostic could
  cause the note to be suppressed.
  - Implemented import functionality for IntegerLiteral (along with
  general support for statements and expressions)

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

14 years agoAdd builtins from PR5255. Implementations coming soon.
Eli Friedman [Thu, 11 Feb 2010 19:02:42 +0000 (19:02 +0000)]
Add builtins from PR5255.  Implementations coming soon.

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

14 years agoTest case for warnings with carets inside macro instantiations.
John McCall [Thu, 11 Feb 2010 18:52:49 +0000 (18:52 +0000)]
Test case for warnings with carets inside macro instantiations.

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

14 years agoAdd virtual operator= example.
Anders Carlsson [Thu, 11 Feb 2010 18:21:49 +0000 (18:21 +0000)]
Add virtual operator= example.

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

14 years agoMore vtable layout dumper improvements. Handle destructors, dump the complete functio...
Anders Carlsson [Thu, 11 Feb 2010 18:20:28 +0000 (18:20 +0000)]
More vtable layout dumper improvements. Handle destructors, dump the complete function type of the member functions (using PredefinedExpr::ComputeName.

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

14 years agoAdd missing test cases for AST merging of structures.
Douglas Gregor [Thu, 11 Feb 2010 18:18:11 +0000 (18:18 +0000)]
Add missing test cases for AST merging of structures.

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

14 years agoDriver: Fix clang -ccc-no-clang -x c++-header foo.h on Darwin.
Daniel Dunbar [Thu, 11 Feb 2010 17:33:45 +0000 (17:33 +0000)]
Driver: Fix clang -ccc-no-clang -x c++-header foo.h on Darwin.

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

14 years agoKeep track of, and dump, vtable address points.
Anders Carlsson [Thu, 11 Feb 2010 17:18:51 +0000 (17:18 +0000)]
Keep track of, and dump, vtable address points.

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

14 years agoRemove noisy semicolon.
Benjamin Kramer [Thu, 11 Feb 2010 11:33:47 +0000 (11:33 +0000)]
Remove noisy semicolon.

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

14 years agoSuppress warnings if their instantiation location is in a system header, not
John McCall [Thu, 11 Feb 2010 10:04:29 +0000 (10:04 +0000)]
Suppress warnings if their instantiation location is in a system header, not
their spelling location.  This prevents warnings from being swallowed just
because the caret is on the first parenthesis in, say, NULL.

This is an experiment;  the risk is that there might be a substantial number
of system headers which #define symbols to expressions which inherently cause
warnings.  My theory is that that's rare enough that it can be worked
around case-by-case, and that producing useful warnings around NULL is worth
it.  But I'm willing to accept that I might be empirically wrong.

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

14 years agoPatch by Cristian Draghici:
Ted Kremenek [Thu, 11 Feb 2010 09:27:41 +0000 (09:27 +0000)]
Patch by Cristian Draghici:

Enhance the printf format string checking when using the format
specifier flags ' ', '0', '+' with the 'p' or 's' conversions (since
they are nonsensical and undefined).  This is similar to GCC's
checking.

Also warning when a precision is used with the 'p' conversin
specifier, since it has no meaning.

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

14 years agoCheck in the beginnings of my new vtable layout builder idea.
Anders Carlsson [Thu, 11 Feb 2010 08:02:13 +0000 (08:02 +0000)]
Check in the beginnings of my new vtable layout builder idea.

Right now, it's off by default but can be tested by passing -fdump-vtable-layouts to clang -cc1. This option will cause all vtables that will normally be emitted as part of codegen to also be dumped using the new layout code.

I've also added a very simple new vtable layout test case.

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

14 years agoAttempt to always dispose of the CXIndex object in c-index-test.
Ted Kremenek [Thu, 11 Feb 2010 07:41:25 +0000 (07:41 +0000)]
Attempt to always dispose of the CXIndex object in c-index-test.

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

14 years agoUse the allocator associated with ASTContext to allocate the args
Ted Kremenek [Thu, 11 Feb 2010 07:31:47 +0000 (07:31 +0000)]
Use the allocator associated with ASTContext to allocate the args
array associated with NonNullAttr.  This fixes yet another leak when
ASTContext uses a BumpPtrAllocator.

Fixes: <rdar://problem/7637150>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95863 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoHave ~ASTContext() delete StoredDeclsMap (internal to DeclContext) by
Ted Kremenek [Thu, 11 Feb 2010 07:12:28 +0000 (07:12 +0000)]
Have ~ASTContext() delete StoredDeclsMap (internal to DeclContext) by
storing the set of StoredDeclsMaps in an internal vector of void*.
This isn't an ideal solution, but for the time being this fixes a
major memory leak with these DenseMaps not being freed.

Fixes: <rdar://problem/7634755>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95861 91177308-0d34-0410-b5e6-96231b3b80d8