]> granicus.if.org Git - clang/log
clang
14 years agoTests: Fix some bugs in clang_f_opts, options were out of order but it worked
Daniel Dunbar [Sun, 13 Dec 2009 02:00:23 +0000 (02:00 +0000)]
Tests: Fix some bugs in clang_f_opts, options were out of order but it worked
because it had two inputs, except on Win32 where /dev/null doesn't exist.

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

14 years agoSilence some release build warnings.
Chandler Carruth [Sun, 13 Dec 2009 01:37:04 +0000 (01:37 +0000)]
Silence some release build warnings.

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

14 years agoBackend: Switch to using TargetOptions or TargetMachine to set some options instead...
Daniel Dunbar [Sat, 12 Dec 2009 23:01:36 +0000 (23:01 +0000)]
Backend: Switch to using TargetOptions or TargetMachine to set some options instead of llvm::cl.

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

14 years agopatch to add a property from a protocol to a class that adopts the protocol.
Fariborz Jahanian [Sat, 12 Dec 2009 21:26:21 +0000 (21:26 +0000)]
patch to add a property from a protocol to a class that adopts the protocol.
(fixes radar 7466494).

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

14 years agoUpdate checker build.
Ted Kremenek [Sat, 12 Dec 2009 19:06:20 +0000 (19:06 +0000)]
Update checker build.

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

14 years agoRework the way we handle template instantiation for
Douglas Gregor [Sat, 12 Dec 2009 18:16:41 +0000 (18:16 +0000)]
Rework the way we handle template instantiation for
implicitly-generated AST nodes. We previously built instantiated nodes
for each of these AST nodes, then passed them on to Sema, which was
not prepared to see already-type-checked nodes (see PR5755). In some
places, we had ugly workarounds to try to avoid re-type-checking
(e.g., in VarDecl initializer instantiation).

Now, we skip implicitly-generated nodes when performing instantiation,
preferring instead to build just the AST nodes that directly reflect
what was written in the source code. This has several advantages:

  - We don't need to instantiate anything that doesn't have a direct
    correlation to the source code, so we can have better location
    information.
  - Semantic analysis sees the same thing at template instantiation
    time that it would see for a non-template.
  - At least one ugly hack (VarDecl initializers) goes away.

Fixes PR5755.

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

14 years agoAdd initial support for realloc() in MallocChecker.
Zhongxing Xu [Sat, 12 Dec 2009 12:29:38 +0000 (12:29 +0000)]
Add initial support for realloc() in MallocChecker.

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

14 years agoRemember the type name's scope specifier in the DeclSpec.
John McCall [Sat, 12 Dec 2009 11:40:51 +0000 (11:40 +0000)]
Remember the type name's scope specifier in the DeclSpec.

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

14 years agoWhen certain diagnostics involving run-time behavior would be emitted
Douglas Gregor [Sat, 12 Dec 2009 07:57:52 +0000 (07:57 +0000)]
When certain diagnostics involving run-time behavior would be emitted
in a potentially potentially evaluated context, queue those
diagnostics and only emit them if the context ends up being
potentially evaluated. This completes the fix for PR5761.

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

14 years agoGive PartialDiagnostic copy semantics rather than move semantics, since we typically...
Douglas Gregor [Sat, 12 Dec 2009 07:48:51 +0000 (07:48 +0000)]
Give PartialDiagnostic copy semantics rather than move semantics, since we typically pass it by reference

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

14 years agoRemove unnecessary pointers from PartialDiagnostic
Douglas Gregor [Sat, 12 Dec 2009 07:31:50 +0000 (07:31 +0000)]
Remove unnecessary pointers from PartialDiagnostic

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

14 years agoSuppress warnings and errors about certain uses of non-POD types (in
Douglas Gregor [Sat, 12 Dec 2009 07:25:49 +0000 (07:25 +0000)]
Suppress warnings and errors about certain uses of non-POD types (in
__builtin_offsetof, passing through an ellipsis) when we're in an
unevaluated context. This is the first part of the fix to PR5761,
which deals with the simple case of an unevaluated context.

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

14 years agoUn-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave
Jeffrey Yasskin [Sat, 12 Dec 2009 05:05:38 +0000 (05:05 +0000)]
Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gave
no extra safety anyway.

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

14 years agoFix for PR4642: move work in HTMLPrinter out of the destructor.
Eli Friedman [Sat, 12 Dec 2009 03:36:52 +0000 (03:36 +0000)]
Fix for PR4642: move work in HTMLPrinter out of the destructor.

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

14 years agoFix tyop.
Anders Carlsson [Sat, 12 Dec 2009 02:43:16 +0000 (02:43 +0000)]
Fix tyop.

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

14 years agoImplement runtime checks for undefined behavior. WIP.
Mike Stump [Sat, 12 Dec 2009 01:27:46 +0000 (01:27 +0000)]
Implement runtime checks for undefined behavior.  WIP.

This implements a new flag -fcatch-undefined-behavior.  The flag turns
on additional runtime checks for:

  T a[I];

  a[i]    abort when i < 0 or i >= I.

Future stuff includes shifts by >= bitwidth amounts.

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

14 years agoRemove empty directory.
Eli Friedman [Sat, 12 Dec 2009 01:05:43 +0000 (01:05 +0000)]
Remove empty directory.

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

14 years agoWe should only scan for nested blocks if we are analyzing the body of a function...
Ted Kremenek [Sat, 12 Dec 2009 01:04:14 +0000 (01:04 +0000)]
We should only scan for nested blocks if we are analyzing the body of a function/method.

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

14 years agoRemove clang-cc tool, it has joined in unholy union with clang.
Daniel Dunbar [Sat, 12 Dec 2009 00:56:47 +0000 (00:56 +0000)]
Remove clang-cc tool, it has joined in unholy union with clang.
 - tools/driver will be renamed to tools/clang at some point.

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

14 years agoConvert the remainder of this test case over to using FileCheck.
Ted Kremenek [Sat, 12 Dec 2009 00:42:52 +0000 (00:42 +0000)]
Convert the remainder of this test case over to using FileCheck.

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

14 years agoXFAIL this test on Win32 until I can take a look.
Daniel Dunbar [Sat, 12 Dec 2009 00:40:42 +0000 (00:40 +0000)]
XFAIL this test on Win32 until I can take a look.

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

14 years agoRemove non-sensical FIXME.
Daniel Dunbar [Sat, 12 Dec 2009 00:39:58 +0000 (00:39 +0000)]
Remove non-sensical FIXME.

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

14 years agoMake using '-fshort-enums' an error until it is actually implemented (changes the...
Ted Kremenek [Sat, 12 Dec 2009 00:38:18 +0000 (00:38 +0000)]
Make using '-fshort-enums' an error until it is actually implemented (changes the ABI, so it is dangerous to not error out if we don't support it).  Fixes <rdar://problem/7461006>.

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

14 years agoCorrectly diagnose [basic.stc.dynamic.allocation]p1
Anders Carlsson [Sat, 12 Dec 2009 00:32:00 +0000 (00:32 +0000)]
Correctly diagnose [basic.stc.dynamic.allocation]p1

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

14 years agoFactor operator new declaration checking out into a separate function.
Anders Carlsson [Sat, 12 Dec 2009 00:26:23 +0000 (00:26 +0000)]
Factor operator new declaration checking out into a separate function.

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

14 years agoMore work on improving the operator delete diagnostics.
Anders Carlsson [Sat, 12 Dec 2009 00:16:02 +0000 (00:16 +0000)]
More work on improving the operator delete diagnostics.

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

14 years agoSwitch the Emacs clang-completion-mode over to clang -cc1
Douglas Gregor [Fri, 11 Dec 2009 23:47:56 +0000 (23:47 +0000)]
Switch the Emacs clang-completion-mode over to clang -cc1

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

14 years agoTests: Stop looking for clang-cc, we don't need it.
Daniel Dunbar [Fri, 11 Dec 2009 23:35:10 +0000 (23:35 +0000)]
Tests: Stop looking for clang-cc, we don't need it.

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

14 years agoFix build.
Anders Carlsson [Fri, 11 Dec 2009 23:31:21 +0000 (23:31 +0000)]
Fix build.

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

14 years agoImprove diagnostics for malformed delete operator function declarations.
Anders Carlsson [Fri, 11 Dec 2009 23:23:22 +0000 (23:23 +0000)]
Improve diagnostics for malformed delete operator function declarations.

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

14 years agoscan-build: when the build command is 'make', override the CC and CXX options by...
Ted Kremenek [Fri, 11 Dec 2009 23:22:52 +0000 (23:22 +0000)]
scan-build: when the build command is 'make', override the CC and CXX options by passing them as arguments to make.  This fixes <rdar://problem/6790224>.

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

14 years agoUpdate a few more docs references to clang-cc.
Daniel Dunbar [Fri, 11 Dec 2009 23:17:03 +0000 (23:17 +0000)]
Update a few more docs references to clang-cc.

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

14 years agoRemove more old references to clang-cc.
Ted Kremenek [Fri, 11 Dec 2009 23:12:52 +0000 (23:12 +0000)]
Remove more old references to clang-cc.

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

14 years agoUpdate docs/comments/utils/examples to refer to clang -cc1 instead of clang-cc.
Daniel Dunbar [Fri, 11 Dec 2009 23:04:35 +0000 (23:04 +0000)]
Update docs/comments/utils/examples to refer to clang -cc1 instead of clang-cc.

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

14 years agoDriver: Switch to using "clang" "-cc1" instead of "clang-cc".
Daniel Dunbar [Fri, 11 Dec 2009 23:00:49 +0000 (23:00 +0000)]
Driver: Switch to using "clang" "-cc1" instead of "clang-cc".

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

14 years agoTests: Change substitution to automagically use 'clang -cc1' instead of 'clang-cc...
Daniel Dunbar [Fri, 11 Dec 2009 22:52:03 +0000 (22:52 +0000)]
Tests: Change substitution to automagically use 'clang -cc1' instead of 'clang-cc'. I still plan to eventually rewrite the tests to clarify the magic (I will probably actually rewrite them to %clang so it is more obvious this is a variable that gets substituted).

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

14 years agoConvert scan-build and ccc-analyzer over to using 'clang -cc1' instead of using ...
Ted Kremenek [Fri, 11 Dec 2009 22:44:53 +0000 (22:44 +0000)]
Convert scan-build and ccc-analyzer over to using 'clang -cc1' instead of using 'clang-cc'.

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

14 years agoPatch to allow C-style cast from 'void *' to block pointer type.
Fariborz Jahanian [Fri, 11 Dec 2009 22:40:48 +0000 (22:40 +0000)]
Patch to allow C-style cast from 'void *' to block pointer type.
(fixes radar 7465023).

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

14 years agoImplement clang -cc1.
Daniel Dunbar [Fri, 11 Dec 2009 22:20:12 +0000 (22:20 +0000)]
Implement clang -cc1.
 - I apologize for the link time horrors, my goal is to kill off clang-cc in fairly short order.

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

14 years agoStmtDumper::VisitUnresolvedLookupExpr
John McCall [Fri, 11 Dec 2009 21:50:11 +0000 (21:50 +0000)]
StmtDumper::VisitUnresolvedLookupExpr

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

14 years agoConsider conversion of objective-c pointer to 'bool' a
Fariborz Jahanian [Fri, 11 Dec 2009 21:23:13 +0000 (21:23 +0000)]
Consider conversion of objective-c pointer to 'bool' a
valid standard conversion to match g++'s behaviour.

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

14 years agoFix for PR5714: make sure globals that will be modified aren't marked const.
Eli Friedman [Fri, 11 Dec 2009 21:23:03 +0000 (21:23 +0000)]
Fix for PR5714: make sure globals that will be modified aren't marked const.

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

14 years agoSwitch PathDiagnostic to StringRef.
Benjamin Kramer [Fri, 11 Dec 2009 21:09:27 +0000 (21:09 +0000)]
Switch PathDiagnostic to StringRef.

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

14 years agoFix two typos.
Benjamin Kramer [Fri, 11 Dec 2009 20:53:46 +0000 (20:53 +0000)]
Fix two typos.

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

14 years agoReorganize testcase.
John McCall [Fri, 11 Dec 2009 20:51:23 +0000 (20:51 +0000)]
Reorganize testcase.

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

14 years agoFix linkage of type info and vtable for classes without linkage.
Eli Friedman [Fri, 11 Dec 2009 20:48:18 +0000 (20:48 +0000)]
Fix linkage of type info and vtable for classes without linkage.

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

14 years agoMake sure mangling doesn't crash in another case. Add some more tests.
Eli Friedman [Fri, 11 Dec 2009 20:21:38 +0000 (20:21 +0000)]
Make sure mangling doesn't crash in another case.  Add some more tests.

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

14 years agoDon't enter a new scope for a namespace-qualified declarator unless we're
John McCall [Fri, 11 Dec 2009 20:04:54 +0000 (20:04 +0000)]
Don't enter a new scope for a namespace-qualified declarator unless we're
in a file context.  In well-formed code, only happens with friend functions.
Fixes PR 5760.

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

14 years agoWhen code completion of an overload set fails, produce results for ordinary name...
Douglas Gregor [Fri, 11 Dec 2009 19:06:04 +0000 (19:06 +0000)]
When code completion of an overload set fails, produce results for ordinary name lookup instead.

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

14 years agoAdd a function's cv-qualifiers to the code-completion results as an
Douglas Gregor [Fri, 11 Dec 2009 18:44:16 +0000 (18:44 +0000)]
Add a function's cv-qualifiers to the code-completion results as an
informative chunk.

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

14 years agoTeach code completion to instantiate templates when it needs to
Douglas Gregor [Fri, 11 Dec 2009 18:28:39 +0000 (18:28 +0000)]
Teach code completion to instantiate templates when it needs to

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

14 years agoMember function templates can occur after . or ->
Douglas Gregor [Fri, 11 Dec 2009 18:14:22 +0000 (18:14 +0000)]
Member function templates can occur after . or ->

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

14 years agoFix for PR5706: let mangleName deal with mangling names without identifiers
Eli Friedman [Fri, 11 Dec 2009 18:00:57 +0000 (18:00 +0000)]
Fix for PR5706: let mangleName deal with mangling names without identifiers
correctly.

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

14 years agoTweak code-completion results by suppressing class template
Douglas Gregor [Fri, 11 Dec 2009 17:31:05 +0000 (17:31 +0000)]
Tweak code-completion results by suppressing class template
specializations and class template partial specializations (they're
never named directly). Also, member access expressions only refer to
value declarations (fields, functions, enumerators, etc.) and
Objective-C property declarations; filter out everything else.

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

14 years agoXFAIL this for now, fixing linkage bugs causes the order of globals to change. Will...
Anders Carlsson [Fri, 11 Dec 2009 17:01:29 +0000 (17:01 +0000)]
XFAIL this for now, fixing linkage bugs causes the order of globals to change. Will fix later today.

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

14 years agoMove info vectors and add assertions in preparation of moving the vector directly...
Anders Carlsson [Fri, 11 Dec 2009 16:41:51 +0000 (16:41 +0000)]
Move info vectors and add assertions in preparation of moving the vector directly into RTTIBuilder.

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

14 years agoUse GetAddrOfRTTI when getting the RTTI pointer for a base class.
Anders Carlsson [Fri, 11 Dec 2009 16:37:06 +0000 (16:37 +0000)]
Use GetAddrOfRTTI when getting the RTTI pointer for a base class.

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

14 years agoClass template (partial) specializations should not show up in code completion results
Douglas Gregor [Fri, 11 Dec 2009 16:18:54 +0000 (16:18 +0000)]
Class template (partial) specializations should not show up in code completion results

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

14 years agoRandom string-related cleanups.
Benjamin Kramer [Fri, 11 Dec 2009 13:33:18 +0000 (13:33 +0000)]
Random string-related cleanups.

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

14 years agoUse StringRef.getAsInteger instead of temporary string + strtol. No intended function...
Benjamin Kramer [Fri, 11 Dec 2009 13:26:32 +0000 (13:26 +0000)]
Use StringRef.getAsInteger instead of temporary string + strtol. No intended functionality change.

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

14 years agoMove the code for converting a member pointer to a bool so that it is usable
Eli Friedman [Fri, 11 Dec 2009 09:26:29 +0000 (09:26 +0000)]
Move the code for converting a member pointer to a bool so that it is usable
for logical not.

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

14 years agoFix for PR5718: implement equality comparisons for member function pointers.
Eli Friedman [Fri, 11 Dec 2009 07:36:43 +0000 (07:36 +0000)]
Fix for PR5718: implement equality comparisons for member function pointers.

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

14 years agoEnhance understanding of VarRegions referenced by a block whose declarations are...
Ted Kremenek [Fri, 11 Dec 2009 06:43:27 +0000 (06:43 +0000)]
Enhance understanding of VarRegions referenced by a block whose declarations are outside the current stack frame.  Fixes <rdar://problem/7462324>.

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

14 years agoCompletely evaluate malloc/free in MallocChecker.cpp.
Zhongxing Xu [Fri, 11 Dec 2009 03:09:01 +0000 (03:09 +0000)]
Completely evaluate malloc/free in MallocChecker.cpp.

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

14 years agoTest member template using hiding.
John McCall [Fri, 11 Dec 2009 02:55:56 +0000 (02:55 +0000)]
Test member template using hiding.

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

14 years agoImprove linkage of RTTI data structures. Introduce CodeGenModule::GetAddrOfRTTI which...
Anders Carlsson [Fri, 11 Dec 2009 02:46:30 +0000 (02:46 +0000)]
Improve linkage of RTTI data structures. Introduce CodeGenModule::GetAddrOfRTTI which figures out the right linkage of the RTTI information for the given type and whether it should be defined or not. I will migrate clients over to GetAddrOfRTTI in subsequent commits (with tests).

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

14 years agoFix a recent regression from the initialization changes.
Eli Friedman [Fri, 11 Dec 2009 02:42:07 +0000 (02:42 +0000)]
Fix a recent regression from the initialization changes.

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

14 years agoCheck if the target of a using decl is already declared in this scope before
John McCall [Fri, 11 Dec 2009 02:33:26 +0000 (02:33 +0000)]
Check if the target of a using decl is already declared in this scope before
doing any of the other redeclaration checks.  We were missing a few cases.
Fixes PR 5752.

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

14 years agoImplement access declarations. Most of the work here is parsing them, which
John McCall [Fri, 11 Dec 2009 02:10:03 +0000 (02:10 +0000)]
Implement access declarations.  Most of the work here is parsing them, which
is difficult because they're so terribly, terribly ambiguous.

We implement access declarations in terms of using declarations, which is
quite reasonable.  However, we should really persist the access/using
distinction in the AST and use the appropriate name in diagnostics.  This
isn't a priority, so I'll just file a PR and hope someone else does it. :)

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

14 years agoGive the "cannot pass object of non-POD type 'class C' through variadic constructor...
Chris Lattner [Fri, 11 Dec 2009 01:52:50 +0000 (01:52 +0000)]
Give the "cannot pass object of non-POD type 'class C' through variadic constructor; call will abort at runtime" warning a -W flag (non-pod-varargs) and default it being an error by default.  There is no good reason to allow users to get bitten by this sort of thing by default.

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

14 years agoFix the handling of dependent enums per C++ DR 502.
Eli Friedman [Fri, 11 Dec 2009 01:34:50 +0000 (01:34 +0000)]
Fix the handling of dependent enums per C++ DR 502.

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

14 years agoUse named flags in RTTIBuilder::BuildPointerType.
Anders Carlsson [Fri, 11 Dec 2009 01:27:37 +0000 (01:27 +0000)]
Use named flags in RTTIBuilder::BuildPointerType.

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

14 years agoWhen extending the lifetime of a temporary, make sure to emit a branch to the cleanup...
Anders Carlsson [Fri, 11 Dec 2009 01:00:09 +0000 (01:00 +0000)]
When extending the lifetime of a temporary, make sure to emit a branch to the cleanup exit block. This fixes a broken module error in LLVMCConfigurationEmitter.cpp.

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

14 years agoUse 'class' instead of 'struct'.
Zhongxing Xu [Fri, 11 Dec 2009 00:55:44 +0000 (00:55 +0000)]
Use 'class' instead of 'struct'.

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

14 years agoWhen an exception needs to be freed by calling __cxa_exception_free, make sure to...
Anders Carlsson [Fri, 11 Dec 2009 00:32:37 +0000 (00:32 +0000)]
When an exception needs to be freed by calling __cxa_exception_free, make sure to stash away the exception pointer somewhere.

This fixes an "Instruction does not dominate all uses!" verification error when compiling TableGen.

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

14 years agoRemove this test for now, it is flaky.
Daniel Dunbar [Fri, 11 Dec 2009 00:27:30 +0000 (00:27 +0000)]
Remove this test for now, it is flaky.

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

14 years agoFileManager: Do not cache failed stats, it is easy to construct common
Daniel Dunbar [Fri, 11 Dec 2009 00:27:20 +0000 (00:27 +0000)]
FileManager: Do not cache failed stats, it is easy to construct common
inconsistent situations if we do, and they are not important for PCH performance
(which currently only needs the stats to construct the initial FileManager
entries).
 - No test case, sorry, the machinations are too involved.

This occurs when, for example, the build makes a PCH file and has a header map
or a -I for a directory that does not yet exist. It is possible we will cache
the negative stat on that directory, and then in the build we will never find
header files inside that dir.

For PCH we don't need these stats anyway for performance, so this also makes PCH
files smaller w/ no loss. I hope to eventually eliminate the stat cache
entirely.

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

14 years agoPatch to fix a crash trying to access a category name in
Fariborz Jahanian [Fri, 11 Dec 2009 00:26:36 +0000 (00:26 +0000)]
Patch to fix a crash trying to access a category name in
objective-c++ mode and also removed dead-code in this area.
(fixes radar 7456710).

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

14 years agoTestcase for recent checkin.
Mike Stump [Fri, 11 Dec 2009 00:10:15 +0000 (00:10 +0000)]
Testcase for recent checkin.

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

14 years agoImplement just a bit more of inline assembly.
Mike Stump [Fri, 11 Dec 2009 00:04:56 +0000 (00:04 +0000)]
Implement just a bit more of inline assembly.

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

14 years agoFix spacing.
Mike Stump [Fri, 11 Dec 2009 00:02:10 +0000 (00:02 +0000)]
Fix spacing.

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

14 years agoDon't complain about falling off the end of a function with an asm
Mike Stump [Thu, 10 Dec 2009 22:57:48 +0000 (22:57 +0000)]
Don't complain about falling off the end of a function with an asm
block, if the function is supposed to return a value as we don't know
exactly what the asm code does.

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

14 years agoclang_getCompletionChunkText() will treat optional strings as empty text blocks
Douglas Gregor [Thu, 10 Dec 2009 22:46:19 +0000 (22:46 +0000)]
clang_getCompletionChunkText() will treat optional strings as empty text blocks

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

14 years agoSupport unary type traits in a scalar context. Not that I've actually seen
Eli Friedman [Thu, 10 Dec 2009 22:40:32 +0000 (22:40 +0000)]
Support unary type traits in a scalar context.  Not that I've actually seen
this construct, but might as well for completeness.

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

14 years agoClean up enum constants so that they're finally sane. Fixes PR3173 and a
Eli Friedman [Thu, 10 Dec 2009 22:29:29 +0000 (22:29 +0000)]
Clean up enum constants so that they're finally sane.  Fixes PR3173 and a
recently introduced crash.

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

14 years agoMake sure that explicitly instantiated functions get the right linkage.
Anders Carlsson [Thu, 10 Dec 2009 22:25:34 +0000 (22:25 +0000)]
Make sure that explicitly instantiated functions get the right linkage.

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

14 years agoBeef up Clang-on-LLVM testing a bit, by making LLVM-Syntax recursive
Douglas Gregor [Thu, 10 Dec 2009 22:08:55 +0000 (22:08 +0000)]
Beef up Clang-on-LLVM testing a bit, by making LLVM-Syntax recursive
(since we now parse all of the headers appropriately) and teaching
LLVM-Code-Syntax about the extra paths needed to parse the backends.

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

14 years agoPrivatize class members.
Benjamin Kramer [Thu, 10 Dec 2009 21:50:21 +0000 (21:50 +0000)]
Privatize class members.

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

14 years agoActually try to trigger the last diagnostic in the declaration-collision test case.
John McCall [Thu, 10 Dec 2009 21:17:25 +0000 (21:17 +0000)]
Actually try to trigger the last diagnostic in the declaration-collision test case.
Surprisingly, we *do* diagnose one of them.  Since we don't really track scopes into
instantiation, this has to signal some kind of bug.

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

14 years agoNo need to add -x objecitve-c++
Fariborz Jahanian [Thu, 10 Dec 2009 20:57:43 +0000 (20:57 +0000)]
No need to add -x objecitve-c++

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

14 years agoAdd support for finding composite type of twp objective-c pointers
Fariborz Jahanian [Thu, 10 Dec 2009 20:46:08 +0000 (20:46 +0000)]
Add support for finding composite type of twp objective-c pointers
in objective-c++ mode.

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

14 years agoImprove the diagnostic when a new declaration conflicts with a using shadow
John McCall [Thu, 10 Dec 2009 19:51:03 +0000 (19:51 +0000)]
Improve the diagnostic when a new declaration conflicts with a using shadow
declaration.  Rename note_using_decl to note_using, which is possibly less confusing.
Add a test for non-class-scope using decl collisions and be sure to note the case
we can't diagnose yet.

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

14 years agoMove composite type finding of two objective-c expressions
Fariborz Jahanian [Thu, 10 Dec 2009 19:47:41 +0000 (19:47 +0000)]
Move composite type finding of two objective-c expressions
into its own helper method. No change in functionality.

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

14 years agoImplement C++ DR437, which involves exception-specifications that name
Douglas Gregor [Thu, 10 Dec 2009 18:13:52 +0000 (18:13 +0000)]
Implement C++ DR437, which involves exception-specifications that name
a type currently being defined, from Nicola Gigante!

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

14 years agoMove initialization via initializer list over to InitializationSequences.
Douglas Gregor [Thu, 10 Dec 2009 17:56:55 +0000 (17:56 +0000)]
Move initialization via initializer list over to InitializationSequences.

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

14 years agoImplement redeclaration checking and hiding semantics for using declarations. There
John McCall [Thu, 10 Dec 2009 09:41:52 +0000 (09:41 +0000)]
Implement redeclaration checking and hiding semantics for using declarations.  There
are a couple of O(n^2) operations in this, some analogous to the usual O(n^2)
redeclaration problem and some not.  In particular, retroactively removing
shadow declarations when they're hidden by later decls is pretty unfortunate.
I'm not yet convinced it's worse than the alternative, though.

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

14 years agoFix for PR5515: allow "merging" array bounds both forwards and backwards.
Eli Friedman [Thu, 10 Dec 2009 08:54:47 +0000 (08:54 +0000)]
Fix for PR5515: allow "merging" array bounds both forwards and backwards.

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

14 years agoTest for r90950.
Eli Friedman [Thu, 10 Dec 2009 08:51:23 +0000 (08:51 +0000)]
Test for r90950.

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

14 years agoMangle static variables inside Objective-C methods in Objective-C++. We currently...
Anders Carlsson [Thu, 10 Dec 2009 03:14:39 +0000 (03:14 +0000)]
Mangle static variables inside Objective-C methods in Objective-C++. We currently mangle them the same way as gcc does.

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

14 years agoGet rid of static variable.
Eli Friedman [Thu, 10 Dec 2009 02:21:21 +0000 (02:21 +0000)]
Get rid of static variable.

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