]> granicus.if.org Git - clang/log
clang
10 years agoFollow-up to r205999: Emit an artificial location (valid scope, line 0)
Adrian Prantl [Fri, 11 Apr 2014 23:45:01 +0000 (23:45 +0000)]
Follow-up to r205999: Emit an artificial location (valid scope, line 0)
for CXXGlobalInit/Dtor helper functions.
This makes _GLOBAL__I_a regain its DW_AT_high/low_pc in the debug info.

Thanks to echristo for catching this!

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

10 years ago[MS-ABI] Fixed alias-avoidance padding in the presence of vtordisps
Warren Hunt [Fri, 11 Apr 2014 23:33:35 +0000 (23:33 +0000)]
[MS-ABI] Fixed alias-avoidance padding in the presence of vtordisps
If a vtordisp exists between two bases, then there is no need for
additional alias avoidance padding.  Test case included.

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

10 years agoCodeGen: Fix handling of C++11 lambdas in profiling
Justin Bogner [Fri, 11 Apr 2014 23:06:35 +0000 (23:06 +0000)]
CodeGen: Fix handling of C++11 lambdas in profiling

Until now we were generating duplicate counters for lambdas: one set
in the function where the lambda was declared and another for the
lambda itself. Instead, we should skip over the bodies of lambdas in
their containing contexts.

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

10 years ago[MS-ABI] Update to vtordisp computation
Warren Hunt [Fri, 11 Apr 2014 22:05:28 +0000 (22:05 +0000)]
[MS-ABI] Update to vtordisp computation
A portion of the vtordisp computation that was previously unguarded by a
test for the declaration of user defined constructors/destructors was
erroniously adding vtordisps to things that shouldn't have them.  This
patch correctly guards that codepath.  In addition, it updates the
comments to make them more clear.  Test case is included.

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

10 years agoAdd a test to distinguish between reserved tokens and normal identifiers.
Yunzhong Gao [Fri, 11 Apr 2014 20:55:19 +0000 (20:55 +0000)]
Add a test to distinguish between reserved tokens and normal identifiers.

The -fms-extensions option affects a number of subtle front-end C/C++
behaviors, and it would be useful to be able to distinguish MS keywords
from regular identifiers in the ms-extensions mode even if the triple
does not define a Windows target. It should make life easier if anyone
needs to port their Windows codes to elsewhere.

Differential Revision: http://reviews.llvm.org/D3034

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

10 years ago[PGO] Change MapRegionCounters to be a RecursiveASTVisitor.
Bob Wilson [Fri, 11 Apr 2014 17:16:13 +0000 (17:16 +0000)]
[PGO] Change MapRegionCounters to be a RecursiveASTVisitor.

This avoids the overhead of specifying all the traversal code when using
ConstStmtVisitor and makes it a lot easier to maintain this.

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

10 years agoSimplify RecordLayoutBuilder with getAsCXXRecordDecl()
Reid Kleckner [Fri, 11 Apr 2014 16:57:42 +0000 (16:57 +0000)]
Simplify RecordLayoutBuilder with getAsCXXRecordDecl()

No functionality change.

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

10 years agoCorrectly handle escaped newlines when the next token starts without a space.
Manuel Klimek [Fri, 11 Apr 2014 12:27:47 +0000 (12:27 +0000)]
Correctly handle escaped newlines when the next token starts without a space.

We will need this to correctly handle conflict markers inside macro
definitions.

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

10 years agoAdd -fmodules-strict-decluse to check that all headers are in modules
Daniel Jasper [Fri, 11 Apr 2014 11:47:45 +0000 (11:47 +0000)]
Add -fmodules-strict-decluse to check that all headers are in modules

Review: http://reviews.llvm.org/D3335

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

10 years agoCodeGen: Handle binary conditional operators in PGO instrumentation
Justin Bogner [Fri, 11 Apr 2014 06:10:10 +0000 (06:10 +0000)]
CodeGen: Handle binary conditional operators in PGO instrumentation

This treats binary conditional operators in the same way as ternary
conditional operators for instrumentation based profiling.

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

10 years agoCleanup: Add default arguments to CodeGenFunction::StartFunction.
Adrian Prantl [Fri, 11 Apr 2014 01:13:04 +0000 (01:13 +0000)]
Cleanup: Add default arguments to CodeGenFunction::StartFunction.
Thanks dblaikie for the suggestion!

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

10 years agoFix handling of redeclaration lookup for using declarations, where the prior
Richard Smith [Fri, 11 Apr 2014 01:03:38 +0000 (01:03 +0000)]
Fix handling of redeclaration lookup for using declarations, where the prior
declaration is not visible. Previously we didn't find hidden friend names in
this redeclaration lookup, because we forgot to treat it as a redeclaration
lookup. Conversely, we did find some local extern names, but those don't
actually conflict with a namespace-scope using declaration, because the only
conflicts we can get are scope conflicts, not conflicts due to the entities
being members of the same namespace.

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

10 years ago[MS-ABI] Update Comments in RecordLayoutBuilder - no functional change
Warren Hunt [Fri, 11 Apr 2014 00:54:15 +0000 (00:54 +0000)]
[MS-ABI] Update Comments in RecordLayoutBuilder - no functional change
This patch updates the comments in RecordLayoutBuilder about record
layout in the MS-ABI.  Also, I added a section about known
incompatibilities.

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

10 years agoSwitch from constexpr to const char *const
Duncan P. N. Exon Smith [Fri, 11 Apr 2014 00:43:16 +0000 (00:43 +0000)]
Switch from constexpr to const char *const

Responding to Richard Smith's review of r205037.

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

10 years ago[MS-ABI] Update virtual base padding rules to match MSVC 10+
Warren Hunt [Fri, 11 Apr 2014 00:14:09 +0000 (00:14 +0000)]
[MS-ABI] Update virtual base padding rules to match MSVC 10+
In version 9 (VS2010) (and prior)? versions of msvc, if the last field
in a record was a bitfield padding equal to the size of the storage
class of that bitfield was added before each vbase and vtordisp.  This
patch removes that feature from clang and updates the lit tests to
reflect it.

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

10 years agoInstrProf: Rename Decl parameters from S to D
Duncan P. N. Exon Smith [Thu, 10 Apr 2014 23:37:36 +0000 (23:37 +0000)]
InstrProf: Rename Decl parameters from S to D

No functionality change.

<rdar://problem/16435801>

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

10 years agoInstrProf: Read unsigned numbers with strtoul and strtoull
Duncan P. N. Exon Smith [Thu, 10 Apr 2014 23:37:34 +0000 (23:37 +0000)]
InstrProf: Read unsigned numbers with strtoul and strtoull

Fixes a bug where unsigned numbers are read using strtol and strtoll.

I don't have a testcase because this bug is effectively unobservable
right now.  To expose the problem in the hash, we would need a function
with greater than INT64_MAX counters, which we don't handle anyway.  To
expose the problem in the function count, we'd need a function with
greater than INT32_MAX counters; this is theoretically observable, but
it isn't a practical testcase to check in.

An upcoming commit changes the hash to be non-trivial, so we'll get some
coverage eventually.

<rdar://problem/16435801>

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

10 years ago[MS-ABI] Fix to vbptr injection site calculation.
Warren Hunt [Thu, 10 Apr 2014 23:23:34 +0000 (23:23 +0000)]
[MS-ABI] Fix to vbptr injection site calculation.
The vbptr is injected after the last non-virtual base lexographically
rather than the last non-virtual base in layout order.  Test case
included.  Also, some line ending fixes.

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

10 years agoDebug info: (Bugfix) Make sure artificial functions like _GLOBAL__I_a
Adrian Prantl [Thu, 10 Apr 2014 23:21:53 +0000 (23:21 +0000)]
Debug info: (Bugfix) Make sure artificial functions like _GLOBAL__I_a
are not associated with any source lines.

Previously, if the Location of a Decl was empty, EmitFunctionStart would
just keep using CurLoc, which would sometimes be correct (e.g., thunks)
but in other cases would just point to a hilariously random location.

This patch fixes this by completely eliminating all uses of CurLoc from
EmitFunctionStart and rather have clients explicitly pass in a
SourceLocation for the function header and the function body.

rdar://problem/14985269

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

10 years agoUpdate Clang for LLVM split stack API changes in r205997
Reid Kleckner [Thu, 10 Apr 2014 22:59:13 +0000 (22:59 +0000)]
Update Clang for LLVM split stack API changes in r205997

Patch by Alex Crichton!

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

10 years ago[MS-ABI] Fixed __declspec(align()) on bitfields under #pragma pack.
Warren Hunt [Thu, 10 Apr 2014 22:15:18 +0000 (22:15 +0000)]
[MS-ABI] Fixed __declspec(align()) on bitfields under #pragma pack.
When __declspec(align()) is applied to a bitfield it affects the
alignment rather than the required alignment of the struct.  The major
feature that this patch adds is that the alignment of the structure
obeys the alignment of __declspec(align()) from the bitfield over the
value specified in pragma pack.

Test cases are included.
The patch also includes some small cleanups in recordlayoutbuilder and
some cleanups to some lit tests, including line endings (but no
functionality change to lit tests)

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

10 years agoinalloca: Pad the struct *after* inserting each arg
Reid Kleckner [Thu, 10 Apr 2014 19:09:43 +0000 (19:09 +0000)]
inalloca: Pad the struct *after* inserting each arg

This ensures that the overall struct size will be a multiple of 4, as
required by the ABI.

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

10 years agoCodeGen: Move PGO initialization into Release()
Justin Bogner [Thu, 10 Apr 2014 18:13:13 +0000 (18:13 +0000)]
CodeGen: Move PGO initialization into Release()

Emitting the PGO initialization in EmitGlobalFunctionDefinition is
inefficient, since this only has an effect once per module.  We move
this to Release() with the rest of the once-per-module logic.

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

10 years agoSome minor improvements to the thread safety intermediate language -- mostly const...
Aaron Ballman [Thu, 10 Apr 2014 18:12:58 +0000 (18:12 +0000)]
Some minor improvements to the thread safety intermediate language -- mostly const correctness and reformatting. Fixes the types involved with castOpcode().

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

10 years agoWhen module umbrellas change, rebuild them
Ben Langmuir [Thu, 10 Apr 2014 17:57:43 +0000 (17:57 +0000)]
When module umbrellas change, rebuild them

With the VFS, it is easy to hit modified umbrellas by overriding the
umbrella header, and what we want is to rebuild, not to fail.

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

10 years agoCodeGen: Clean up CommonLinkage calculation
David Majnemer [Thu, 10 Apr 2014 16:53:16 +0000 (16:53 +0000)]
CodeGen: Clean up CommonLinkage calculation

No functionality change.

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

10 years agoARM: Add command line option to select big or little endian
Christian Pirker [Thu, 10 Apr 2014 13:59:32 +0000 (13:59 +0000)]
ARM: Add command line option to select big or little endian

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

10 years agoAArch64: Add command line option to select big or little endian
Christian Pirker [Thu, 10 Apr 2014 13:55:51 +0000 (13:55 +0000)]
AArch64: Add command line option to select big or little endian

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

10 years ago[SystemZ] Don't indent SystemZTargetInfo relative to its namespace
Richard Sandiford [Thu, 10 Apr 2014 09:56:24 +0000 (09:56 +0000)]
[SystemZ] Don't indent SystemZTargetInfo relative to its namespace

Whitespace only.  No functional change intended.

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

10 years agoclang-format: Fix false positive in braced list detection in protos.
Daniel Jasper [Thu, 10 Apr 2014 07:27:12 +0000 (07:27 +0000)]
clang-format: Fix false positive in braced list detection in protos.

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

10 years agoAdd global static variables for anonymous union fields. This makes
Eric Christopher [Thu, 10 Apr 2014 05:20:00 +0000 (05:20 +0000)]
Add global static variables for anonymous union fields. This makes
sure that a debugger can find them when stepping through code,
for example from the included testcase:

   12     int test_it() {
   13       c = 1;
   14       d = 2;
-> 15       a = 4;
   16       return (c == 1);
   17     }
   18
(lldb) p a
(int) $0 = 2
(lldb) p c
(int) $1 = 2
(lldb) p d
(int) $2 = 2

and a, c, d are all part of the file static anonymous union:

static union {
  int c;
  int d;
  union {
    int a;
  };
  struct {
    int b;
  };
};

Fixes PR19221.

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

10 years agoAvoid crashing when failing to emit a thunk
Reid Kleckner [Thu, 10 Apr 2014 01:40:15 +0000 (01:40 +0000)]
Avoid crashing when failing to emit a thunk

If we crash, we raise a crash handler dialog, and that's really
annoying.  Even though we can't emit correct IR until we have musttail,
don't crash.

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

10 years agoFix the build with LLVM_DELETED_FUNCTION instead of '= delete'
Reid Kleckner [Thu, 10 Apr 2014 01:05:01 +0000 (01:05 +0000)]
Fix the build with LLVM_DELETED_FUNCTION instead of '= delete'

MSVC 2012 doesn't understand '= delete', but 2013 does.

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

10 years agoRemove Unicode introduced in r205943
David Majnemer [Thu, 10 Apr 2014 00:59:44 +0000 (00:59 +0000)]
Remove Unicode introduced in r205943

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

10 years agoAST: Implement proposal for dependent elaborated type specifiers
David Majnemer [Thu, 10 Apr 2014 00:49:24 +0000 (00:49 +0000)]
AST: Implement proposal for dependent elaborated type specifiers

cxx-abi-dev came up with a way to disambiguate between different
keywords used in elaborated type specifiers.

This resolves certain collisions during mangling.

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

10 years agoMove search for header in umbrella directories into its own function
Ben Langmuir [Thu, 10 Apr 2014 00:39:10 +0000 (00:39 +0000)]
Move search for header in umbrella directories into its own function

No functional change intended.

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

10 years agoThread Safety Analysis: reorganized SExpr header files. No change in
DeLesley Hutchins [Wed, 9 Apr 2014 22:39:43 +0000 (22:39 +0000)]
Thread Safety Analysis: reorganized SExpr header files.  No change in
functionality.

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

10 years agoThread safety: move the inline function back into a namespace
Reid Kleckner [Wed, 9 Apr 2014 22:17:06 +0000 (22:17 +0000)]
Thread safety: move the inline function back into a namespace

Moving it into a struct makes things work because it implicitly marks
the function as inline.  The struct is unnecessary if you explicitly
mark the function inline.

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

10 years ago[MS-ABI] Update to alias-avoidance padding
Warren Hunt [Wed, 9 Apr 2014 21:57:24 +0000 (21:57 +0000)]
[MS-ABI] Update to alias-avoidance padding
This patch changes how we determine if padding is needed between two
bases in msvc compatibility mode.  Test cases included.

In addition, a very minor change to the printing of structures to ease
lit testing.

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

10 years agoSwitching back from a static namespace-scoped function to a static class-scope functi...
Aaron Ballman [Wed, 9 Apr 2014 21:40:14 +0000 (21:40 +0000)]
Switching back from a static namespace-scoped function to a static class-scope function. No functional change, but resolves a warning.

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

10 years agoThread Safety Analysis: now with less includes. No functional changes.
Aaron Ballman [Wed, 9 Apr 2014 21:12:04 +0000 (21:12 +0000)]
Thread Safety Analysis: now with less includes. No functional changes.

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

10 years agoclang-cl: Disable TBAA by default for MSVC compatibility
Reid Kleckner [Wed, 9 Apr 2014 20:07:39 +0000 (20:07 +0000)]
clang-cl: Disable TBAA by default for MSVC compatibility

MSVC doesn't have an option to enable TBAA, so make -fstrict-aliasing
and -fno-strict-aliasing available in clang-cl.

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

10 years agoHandle difference in signedness of 'char' in test/Index/print-type.c{,pp}
Anders Waldenborg [Wed, 9 Apr 2014 19:39:07 +0000 (19:39 +0000)]
Handle difference in signedness of 'char' in test/Index/print-type.c{,pp}

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

10 years agoMake c-index-test -test-print-type include pointeekind for pointer types
Anders Waldenborg [Wed, 9 Apr 2014 19:16:08 +0000 (19:16 +0000)]
Make c-index-test -test-print-type include pointeekind for pointer types

The idea is to give visibility to more type kinds, especially for getting
a better grasp of what appears as unexposed type kind with libclang.

Differential Revision: http://reviews.llvm.org/D3325

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

10 years agoAdd a -triple argument so that this new test passes on Darwin.
Bob Wilson [Wed, 9 Apr 2014 18:51:19 +0000 (18:51 +0000)]
Add a -triple argument so that this new test passes on Darwin.

The section names used here are not valid for Mach-O.

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

10 years ago[Preprocessor/CodeComplete] Don't add include guard macros to code-completion results.
Argyrios Kyrtzidis [Wed, 9 Apr 2014 18:21:23 +0000 (18:21 +0000)]
[Preprocessor/CodeComplete] Don't add include guard macros to code-completion results.

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

10 years agoCannot have the base class destructor be private (or explicitly deleted); fixing...
Aaron Ballman [Wed, 9 Apr 2014 17:55:04 +0000 (17:55 +0000)]
Cannot have the base class destructor be private (or explicitly deleted); fixing the build bots.

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

10 years agoThread Safety Analysis: some minor cleanups to the latest thread safety changes....
Aaron Ballman [Wed, 9 Apr 2014 17:45:44 +0000 (17:45 +0000)]
Thread Safety Analysis: some minor cleanups to the latest thread safety changes. No functional changes intended.

* Adds an iterator_range interface to CallExpr to get the arguments
* Modifies SExpr such that it must be allocated in the Arena, and cannot be deleted
* Minor const-correctness and nullptr updates
* Adds some operator!= implementations to complement operator==
* Removes unused functionality

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

10 years agoclang-format: Update flag documentation, and generation script.
Daniel Jasper [Wed, 9 Apr 2014 14:05:49 +0000 (14:05 +0000)]
clang-format: Update flag documentation, and generation script.

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

10 years agoclang-format: Treat a trailing comment like a trailing comma in braced lists.
Daniel Jasper [Wed, 9 Apr 2014 13:18:49 +0000 (13:18 +0000)]
clang-format: Treat a trailing comment like a trailing comma in braced lists.

Before:
  static StructInitInfo module = {MODULE_BUILTIN, /* type */
                                  "streams" /* name */
  };

After:
  static StructInitInfo module = {
      MODULE_BUILTIN, /* type */
      "streams"       /* name */
  };

This fixes llvm.org/PR19378.

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

10 years agoclang-format: Fix bug where clang-format would break the code.
Daniel Jasper [Wed, 9 Apr 2014 12:21:48 +0000 (12:21 +0000)]
clang-format: Fix bug where clang-format would break the code.

Before, it would turn:
  SomeFunction([]() { // Cool function..
    return 43;
  });

Into this:
  SomeFunction([]() { // Cool function.. return 43; });

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

10 years agoclang-format: Improve format of calls with several lambdas.
Daniel Jasper [Wed, 9 Apr 2014 12:08:39 +0000 (12:08 +0000)]
clang-format: Improve format of calls with several lambdas.

Before:
  SomeFunction([]() {
                 int i = 42;
                 return i;
               },
               []() {
    int j = 43;
    return j;
  });

After:
  SomeFunction([]() {
                 int i = 42;
                 return i;
               },
               []() {
                 int j = 43;
                 return j;
               });

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

10 years agoclang-format: Allow breaking between trailing annotations in more cases.
Daniel Jasper [Wed, 9 Apr 2014 10:29:11 +0000 (10:29 +0000)]
clang-format: Allow breaking between trailing annotations in more cases.

Before:
  void aaaaaaaaaaaaaa(aaaaaaaa aaa) override AAAAAAAAAAAAAAAAAAAAAAAA(
      aaaaaaaaaaaaaaa);

After:
  void aaaaaaaaaaaaaa(aaaaaaaa aaa) override
      AAAAAAAAAAAAAAAAAAAAAAAA(aaaaaaaaaaaaaaa);

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

10 years agoclang-format: Keep more trailing annotations on the same line.
Daniel Jasper [Wed, 9 Apr 2014 10:01:49 +0000 (10:01 +0000)]
clang-format: Keep more trailing annotations on the same line.

More precisely keep all short annotations (<10 characters) on the same
line if possible. Previously, clang-format would only prefer to do so
for "const", "override" and "final". However, it seems to be generally
preferable, especially because some codebases have to wrap those in
macros for backwards compatibility.

Before:
  void someLongFunction(int someLongParameter)
      OVERRIDE {}

After:
  void someLongFunction(
      int someLongParameter) OVERRIDE {}

This fixes llvm.org/PR19363.

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

10 years agoclang-format: Recognize lists ending in trailing commas correctly.
Daniel Jasper [Wed, 9 Apr 2014 09:53:23 +0000 (09:53 +0000)]
clang-format: Recognize lists ending in trailing commas correctly.

Previously, this did not look through trailing comments leading to a few
formatting oddities.

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

10 years agoclang-format: Add proto files and JavaScript to git-clang-format.
Daniel Jasper [Wed, 9 Apr 2014 09:22:35 +0000 (09:22 +0000)]
clang-format: Add proto files and JavaScript to git-clang-format.

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

10 years agoSema::SectionInfo() should have an empty body. Sorry for the breakage.
NAKAMURA Takumi [Wed, 9 Apr 2014 08:26:33 +0000 (08:26 +0000)]
Sema::SectionInfo() should have an empty body. Sorry for the breakage.

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

10 years agoSema::SectionInfo: Prune "default" for now. Defaulted function is unavailable on...
NAKAMURA Takumi [Wed, 9 Apr 2014 07:59:55 +0000 (07:59 +0000)]
Sema::SectionInfo: Prune "default" for now. Defaulted function is unavailable on msc17.

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

10 years agoAdd missing include.
Richard Trieu [Wed, 9 Apr 2014 03:31:44 +0000 (03:31 +0000)]
Add missing include.

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

10 years ago[analyzer] When checking Foundation method calls, match the selectors exactly.
Jordan Rose [Wed, 9 Apr 2014 01:39:22 +0000 (01:39 +0000)]
[analyzer] When checking Foundation method calls, match the selectors exactly.

This also includes some infrastructure to make it easier to build multi-argument
selectors, rather than trying to use string matching on each piece. There's a bit
more setup code, but less cost at runtime.

PR18908

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

10 years ago[MS-ABI] Lit fix for r205810
Warren Hunt [Tue, 8 Apr 2014 22:49:38 +0000 (22:49 +0000)]
[MS-ABI] Lit fix for r205810
On linux strings have different linkage than on windows.  This
patch makes the lit test more general.

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

10 years ago[MS-ABI] Add support for #pragma section and related pragmas
Warren Hunt [Tue, 8 Apr 2014 22:30:47 +0000 (22:30 +0000)]
[MS-ABI] Add support for #pragma section and related pragmas
This patch adds support for the msvc pragmas section, bss_seg, code_seg,
const_seg and data_seg as well as support for __declspec(allocate()).

Additionally it corrects semantics and adds diagnostics for
__attribute__((section())) and the interaction between the attribute
and the msvc pragmas and declspec.  In general conflicts should now be
well diganosed within and among these features.

In supporting the pragmas new machinery for uniform lexing for
msvc pragmas was introduced.  The new machinery always lexes the
entire pragma and stores it on an annotation token.  The parser
is responsible for parsing the pragma when the handling the
annotation token.

There is a known outstanding bug in this implementation in C mode.
Because these attributes and pragmas apply _only_ to definitions, we
process them at the time we detect a definition.  Due to tentative
definitions in C, we end up processing the definition late.  This means
that in C mode, everything that ends up in a BSS section will end up in
the _last_ BSS section rather than the one that was live at the time of
tentative definition, even if that turns out to be the point of actual
definition.  This issue is not known to impact anything as of yet
because we are not aware of a clear use or use case for #pragma bss_seg
but should be fixed at some point.

Differential Revision=http://reviews.llvm.org/D3065#inline-16241

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

10 years agoThread Safety Analysis. Misc fixes to SExpr code, responding to code review
DeLesley Hutchins [Tue, 8 Apr 2014 22:21:22 +0000 (22:21 +0000)]
Thread Safety Analysis.  Misc fixes to SExpr code, responding to code review
by Aaron Ballman.

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

10 years agoFix the funcsig test with an explicit triple
Reid Kleckner [Tue, 8 Apr 2014 18:28:09 +0000 (18:28 +0000)]
Fix the funcsig test with an explicit triple

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

10 years agoAdd support for MSVC's __FUNCSIG__
Reid Kleckner [Tue, 8 Apr 2014 18:13:24 +0000 (18:13 +0000)]
Add support for MSVC's __FUNCSIG__

It is very similar to GCC's __PRETTY_FUNCTION__, except it prints the
calling convention.

Reviewers: majnemer

Differential Revision: http://reviews.llvm.org/D3311

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

10 years agointrin.h: Fix up bugs in the cr3 and msr intrinsics
Reid Kleckner [Tue, 8 Apr 2014 17:49:16 +0000 (17:49 +0000)]
intrin.h: Fix up bugs in the cr3 and msr intrinsics

Don't include input and output regs in clobbers.  Prefix some
identifiers with __.  Add a memory constraint to __readcr3 to prevent
reordering.  This constraint is heavy handed, but conservatively
correct.

Thanks to PaX Team for the suggestions.

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

10 years agoHave validate-system-headers override validate-once-per-build-session
Ben Langmuir [Tue, 8 Apr 2014 15:36:28 +0000 (15:36 +0000)]
Have validate-system-headers override validate-once-per-build-session

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

10 years agoclang-format: Fix incorrect multi-block-parameter computation.
Daniel Jasper [Tue, 8 Apr 2014 14:04:31 +0000 (14:04 +0000)]
clang-format: Fix incorrect multi-block-parameter computation.

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

10 years agoIf a header is explicitly included in module A, and excluded from an umbrella
Richard Smith [Tue, 8 Apr 2014 13:13:04 +0000 (13:13 +0000)]
If a header is explicitly included in module A, and excluded from an umbrella
directory in module B, don't include it in module B!

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

10 years agoclang-format: Correctly understand arrays of pointers.
Daniel Jasper [Tue, 8 Apr 2014 13:07:41 +0000 (13:07 +0000)]
clang-format: Correctly understand arrays of pointers.

Before:
  A<int * []> a;

After:
  A<int *[]> a;

This fixes llvm.org/PR19360.

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

10 years agoclang-format: Extend AllowShortFunctions.. to only merge inline functions.
Daniel Jasper [Tue, 8 Apr 2014 12:46:38 +0000 (12:46 +0000)]
clang-format: Extend AllowShortFunctions.. to only merge inline functions.

Before AllowShortFunctionsOnASingleLine could either be true, merging
all functions, or false, merging no functions. This patch adds a third
value "Inline", which can be used to only merge short functions defined
inline in a class, i.e.:

  void f() {
    return 42;
  }

  class C {
    void f() { return 42; }
  };

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

10 years agoPR19346: Adding 0 to a null pointer has defined behavior in C++. Allow it in constant...
Richard Smith [Tue, 8 Apr 2014 12:19:28 +0000 (12:19 +0000)]
PR19346: Adding 0 to a null pointer has defined behavior in C++. Allow it in constant expressions.

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

10 years agointrin.h: Implement __readmsr, __readcr3, and __writecr3
Reid Kleckner [Tue, 8 Apr 2014 00:28:22 +0000 (00:28 +0000)]
intrin.h: Implement __readmsr, __readcr3, and __writecr3

Fixes PR19301.

Based on a patch from Steven Graf!

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

10 years agoThread Safety Analysis: various fixes to new SExpr code.
DeLesley Hutchins [Mon, 7 Apr 2014 22:56:24 +0000 (22:56 +0000)]
Thread Safety Analysis: various fixes to new SExpr code.
Implemented ownership policy, updated to use nullptr, const-cleanup.

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

10 years agoThread Safety Analysis: fix warning.
DeLesley Hutchins [Mon, 7 Apr 2014 19:51:32 +0000 (19:51 +0000)]
Thread Safety Analysis: fix warning.

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

10 years ago-fms-extensions: Don't define __PRETTY_FUNCTION__ to __FUNCTION__
Reid Kleckner [Mon, 7 Apr 2014 19:27:58 +0000 (19:27 +0000)]
-fms-extensions: Don't define __PRETTY_FUNCTION__ to __FUNCTION__

This reverts r90596 from 2009. Having this macro definition makes Clang
strictly less useful with -fms-extensions.

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

10 years agoThread Safety Analysis: update to internal SExpr handling.
DeLesley Hutchins [Mon, 7 Apr 2014 18:09:54 +0000 (18:09 +0000)]
Thread Safety Analysis: update to internal SExpr handling.
This patch is the first part of a significant refactoring that seeks to restore
sanity to way thread safety analysis deals with capability expressions.  The
current patch merely provides an outline of the structure of the new system.
It's not yet connected to the actual analysis, so there's no change in
functionality.

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

10 years agoMangle the vbptr offset into pointers to member functions
Reid Kleckner [Mon, 7 Apr 2014 18:07:03 +0000 (18:07 +0000)]
Mangle the vbptr offset into pointers to member functions

This can actually be non-zero if you override a function from a virtual
base and you have forced the most_general pointer to member
representation.

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

10 years ago[analyzer] Fix mistake in example for potential checker "posix.Errno".
Jordan Rose [Mon, 7 Apr 2014 16:36:15 +0000 (16:36 +0000)]
[analyzer] Fix mistake in example for potential checker "posix.Errno".

Found by Richard Osbourne!

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

10 years ago[analyzer] Re-enable test I accidentally committed commented-out.
Jordan Rose [Mon, 7 Apr 2014 16:36:08 +0000 (16:36 +0000)]
[analyzer] Re-enable test I accidentally committed commented-out.

Thanks, Alex!

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

10 years agoRevert r205646 (keeping the test in its modified form) as
Fariborz Jahanian [Mon, 7 Apr 2014 16:32:54 +0000 (16:32 +0000)]
Revert r205646 (keeping the test in its modified form) as
it is subsumed by r205521.

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

10 years agoFix a typo introduced in r205716
David Majnemer [Mon, 7 Apr 2014 16:19:27 +0000 (16:19 +0000)]
Fix a typo introduced in r205716

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

10 years agoclang-cl: make /Gw map to -fdata-sections
David Majnemer [Mon, 7 Apr 2014 16:14:38 +0000 (16:14 +0000)]
clang-cl: make /Gw map to -fdata-sections

Note that /Gy no longer implies -fdata-sections.

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

10 years agoFix clang-tidy warning (argument comments don't match parameter names).
Richard Smith [Mon, 7 Apr 2014 15:16:58 +0000 (15:16 +0000)]
Fix clang-tidy warning (argument comments don't match parameter names).

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

10 years agolibclang: add clang_CXXMethod_isConst API that allows to determine if a C++
Dmitri Gribenko [Mon, 7 Apr 2014 14:59:13 +0000 (14:59 +0000)]
libclang: add clang_CXXMethod_isConst API that allows to determine if a C++
member function or member function template is declared 'const'

Patch by Kevin Funk with testcase updates by me.

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

10 years agoUpdated phabricator server.
Serge Pavlov [Mon, 7 Apr 2014 03:39:55 +0000 (03:39 +0000)]
Updated phabricator server.

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

10 years agoDebugInfo: Support type alias templates
David Blaikie [Sun, 6 Apr 2014 17:14:06 +0000 (17:14 +0000)]
DebugInfo: Support type alias templates

We already got the type alias correct (though I've included a test case
here) since Clang represents that like any other typedef - but type
alias templates weren't being handled.

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

10 years agoDebugInfo: emit namespace aliases as named imported declarations instead of named...
David Blaikie [Sun, 6 Apr 2014 06:30:03 +0000 (06:30 +0000)]
DebugInfo: emit namespace aliases as named imported declarations instead of named imported entities

Apparently that's how DWARF4 suggests they be emitted. So let's do that.

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

10 years ago[Frontend] If the module file lock owner have died, try to get the lock again. Needs...
Argyrios Kyrtzidis [Sun, 6 Apr 2014 03:21:44 +0000 (03:21 +0000)]
[Frontend] If the module file lock owner have died, try to get the lock again. Needs llvm r205683.

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

10 years agoReapply r205655, DebugInfo: Place global constants in their appropriate context.
David Blaikie [Sat, 5 Apr 2014 07:46:57 +0000 (07:46 +0000)]
Reapply r205655, DebugInfo: Place global constants in their appropriate context.

This was reverted in 205664 and seems to be fixed by 205668... though
that may be more by accident than anything well founded.

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

10 years agoDebugInfo: Avoid emitting constnants for every use
David Blaikie [Sat, 5 Apr 2014 07:23:17 +0000 (07:23 +0000)]
DebugInfo: Avoid emitting constnants for every use

While the folding set would deduplicate the nodes themselves and LLVM
would handle not emitting the same global twice, it still meant creating
a long/redundant list of global variables.

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

10 years ago[analyzer] Add an ErrnoChecker (PR18701) to the Potential Checkers list.
Jordan Rose [Sat, 5 Apr 2014 06:10:28 +0000 (06:10 +0000)]
[analyzer] Add an ErrnoChecker (PR18701) to the Potential Checkers list.

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

10 years ago[analyzer] Update Open Projects page with BitwiseConstraintManager.
Jordan Rose [Sat, 5 Apr 2014 06:10:22 +0000 (06:10 +0000)]
[analyzer] Update Open Projects page with BitwiseConstraintManager.

Also, add the names of people most recently working on particular projects,
and remove "relate bugs and checkers" (thanks, Alex!).

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

10 years agoAdd a new subgroup to -Wtautological-compare, -Wtautological-overlap-compare,
Richard Trieu [Sat, 5 Apr 2014 05:17:01 +0000 (05:17 +0000)]
Add a new subgroup to -Wtautological-compare, -Wtautological-overlap-compare,
which warns on compound conditionals that always evaluate to the same value.
For instance, (x > 5 && x < 3) will always be false since no value for x can
satisfy both conditions.

This patch also changes the CFG to use these tautological values for better
branch analysis.  The test for -Wunreachable-code shows how this change catches
additional dead code.

Patch by Anders Rönnholm.

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

10 years agoRevert "DebugInfo: Place global constants in their appropriate context."
David Blaikie [Sat, 5 Apr 2014 03:39:29 +0000 (03:39 +0000)]
Revert "DebugInfo: Place global constants in their appropriate context."

This reverts commit r205655.

Breaks the compiler-rt build with an assertion failure in LLVM...
reverting while I investigate.

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

10 years ago[analyzer] Look through temporary destructors when finding a region to construct.
Jordan Rose [Sat, 5 Apr 2014 02:01:41 +0000 (02:01 +0000)]
[analyzer] Look through temporary destructors when finding a region to construct.

Fixes a false positive when temporary destructors are enabled where a temporary
is destroyed after a variable is constructed but before the VarDecl itself is
processed, which occurs when the variable is in the condition of an if or while.

Patch by Alex McCarthy, with an extra test from me.

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

10 years agoObjective-C arc [Sema]. Allow bridge cast of a qualified-id expression
Fariborz Jahanian [Fri, 4 Apr 2014 23:53:45 +0000 (23:53 +0000)]
Objective-C arc [Sema]. Allow bridge cast of a qualified-id expression
when bridged Objective-C type conforms to the protocols in CF types's
Objective-C class. // rdar://16393330

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

10 years agoDebugInfo: Place global constants in their appropriate context.
David Blaikie [Fri, 4 Apr 2014 23:16:44 +0000 (23:16 +0000)]
DebugInfo: Place global constants in their appropriate context.

We also don't need to duplicate the name in the LinkageName field. Just
leave it empty.

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

10 years agoTry harder about not suggesting methods as corrections when they
Kaelyn Takata [Fri, 4 Apr 2014 22:16:30 +0000 (22:16 +0000)]
Try harder about not suggesting methods as corrections when they
obviously won't work. Specifically, don't suggest methods (static or
not) from unrelated classes when the expression is a method call
through a specific object.

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

10 years agoDebugInfo: PR19298: function local const variables duplicated in the root scope
David Blaikie [Fri, 4 Apr 2014 20:56:17 +0000 (20:56 +0000)]
DebugInfo: PR19298: function local const variables duplicated in the root scope

See the comment for CodeGenFunction::tryEmitAsConstant that describes
how in some contexts (lambdas) we must not emit references to the
variable, but instead use the constant directly - because of this we end
up emitting a constant for the variable, as well as emitting the
variable itself.

Should we just skip putting the variable on the stack at all and omit
the debug info for the constant? It's not clear to me - what if the
address of the local is taken?

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