]> granicus.if.org Git - clang/log
clang
10 years agoDriver: Consolidate the logic for naming the module crashdump cache
Justin Bogner [Mon, 20 Oct 2014 22:47:23 +0000 (22:47 +0000)]
Driver: Consolidate the logic for naming the module crashdump cache

List the module cache we use for crashdumps as a tempfile. This
simplifies how we pick up this directory when generating the actual
crash diagnostic and removes some duplicate logic.

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

10 years agoDriver: Name crashdump scripts after the first temp file
Justin Bogner [Mon, 20 Oct 2014 21:47:56 +0000 (21:47 +0000)]
Driver: Name crashdump scripts after the first temp file

In practice there's only ever one temporary output file when
generating a crashdump, but even if there were many iterating over
each and creating a duplicate run script for each one wouldn't make
very much sense.

This updates the behaviour to only generate the script once, based on
the first filename.

This should make it more reasonable to generate extra output files to
include in the crashdump going forward, so I've also added a FIXME to
look into doing just that with the extra module crashdump files.

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

10 years agoDriver: Use an early return instead of a long if condition (NFC)
Justin Bogner [Mon, 20 Oct 2014 21:20:27 +0000 (21:20 +0000)]
Driver: Use an early return instead of a long if condition (NFC)

This just flattens an if block by returning early on the "else"
condition.

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

10 years agoDriver: Make FailingCommand mandatory for generateCompilationDiagnostics
Justin Bogner [Mon, 20 Oct 2014 21:02:05 +0000 (21:02 +0000)]
Driver: Make FailingCommand mandatory for generateCompilationDiagnostics

We currently use a null FailingCommand when generating crash reports
as an indication that the cause is FORCE_CLANG_DIAGNOSTICS_CRASH, the
environment variable that exists to test crash dumps. This means that
our tests don't actually cover real crashes at all, and adds a more
complicated code path that's only used in the tests.

Instead, we can have the driver synthesize that every command failed
and just call generateCompilationDiagnostics normally.

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

10 years agoFix whitespace introduced in r220221
David Blaikie [Mon, 20 Oct 2014 20:29:35 +0000 (20:29 +0000)]
Fix whitespace introduced in r220221

Post commit review feedback from Yaron Keren.

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

10 years agoImprove Windows toolchain support for non-standard environments.
Zachary Turner [Mon, 20 Oct 2014 20:08:04 +0000 (20:08 +0000)]
Improve Windows toolchain support for non-standard environments.

Typically clang finds Visual Studio by the user explicitly setting
up a Visual Studio environment via vcvarsall.  But we still try to
behave intelligently and fallback to different methods of finding
Visual Studio when this is not done.  This patch improves various
fallback codepaths to make Visual Studio locating more robust.

Specifically, this patch:

* Adds support for searching environment variables for VS 12.0
* Correctly locates include folders for Windows SDK 8.x (this was
  previously broken, and would cause clang to error)
* Prefers locating link.exe in the same location as cl.exe.  This
  is helpful in case another link.exe is in the path earlier than
  Visual Studio (e.g. GnuWin32)
* Minor cleanup in the registry reading code to make it more
  robust in the presence of long pathnames.

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

10 years agoPR21312: Fix a regression in non-type template parameters of function type that are...
David Blaikie [Mon, 20 Oct 2014 18:56:54 +0000 (18:56 +0000)]
PR21312: Fix a regression in non-type template parameters of function type that are static member functions.

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

10 years agoFix indentation.
David Blaikie [Mon, 20 Oct 2014 17:42:23 +0000 (17:42 +0000)]
Fix indentation.

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

10 years agoAdd RestrictQualifierLoc to DeclaratorChunk::FunctionTypeInfo
Hal Finkel [Mon, 20 Oct 2014 17:32:04 +0000 (17:32 +0000)]
Add RestrictQualifierLoc to DeclaratorChunk::FunctionTypeInfo

Clang supports __restrict__ as a function qualifier, but
DeclaratorChunk::FunctionTypeInfo lacked a field to track the qualifier's
source location (as we do with volatile, etc.). This was the subject of a FIXME
in GetFullTypeForDeclarator (in SemaType.cpp). This should also prove useful as
we add more warnings regarding questionable uses of the restrict qualifier.

There is no significant functional change (except for an improved source range
associated with the err_invalid_qualified_function_type diagnostic fixit
generated by GetFullTypeForDeclarator).

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

10 years agoRevert most of r215810, which is no longer needed
Ben Langmuir [Mon, 20 Oct 2014 16:27:32 +0000 (16:27 +0000)]
Revert most of r215810, which is no longer needed

Now that we no longer add mappings when there are no local entities,
there is no need to always bump the size of the tables that correspond
to ContinuousRangeMaps.

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

10 years agoDon't add ID mappings for offsets with no entities in a module
Ben Langmuir [Mon, 20 Oct 2014 16:27:30 +0000 (16:27 +0000)]
Don't add ID mappings for offsets with no entities in a module

This is a better fix for 'duplicate key' problems in module continuous
range maps (vs what I added in r215810) by not adding any mappings at
all when there are no local entities. Now it also covers selectors,
which were not always being bumped because the record SELECTOR_OFFSET is
not always emitted.  I'll back out most of r215810 in a future commit,
since it should no longer be needed.

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

10 years agoclang-format: Fix overloaded operator edge case.
Daniel Jasper [Mon, 20 Oct 2014 13:56:30 +0000 (13:56 +0000)]
clang-format: Fix overloaded operator edge case.

Before:
  template <class F>
  void Call(F f) {
    f.template operator() <int>();
  }

After:
  template <class F>
  void Call(F f) {
    f.template operator()<int>();
  }

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

10 years agoD5823: Fix typo in Clang test arm-cortex-cpus.c; patch by Gabor Ballabas!
Artyom Skrobov [Mon, 20 Oct 2014 13:48:19 +0000 (13:48 +0000)]
D5823: Fix typo in Clang test arm-cortex-cpus.c; patch by Gabor Ballabas!

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

10 years agoclang-format: [ObjC] Fix using selector names as macro arguments.
Daniel Jasper [Mon, 20 Oct 2014 12:01:45 +0000 (12:01 +0000)]
clang-format: [ObjC] Fix using selector names as macro arguments.

Before:
  [self aaaaa:MACRO(a, b :, c :)];

After:
  [self aaaaa:MACRO(a, b:, c:)];

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

10 years agoclang-format: Fix indentation of struct definitions with array init.
Daniel Jasper [Mon, 20 Oct 2014 11:12:51 +0000 (11:12 +0000)]
clang-format: Fix indentation of struct definitions with array init.

Before:
  struct {
    int x;
    int y;
  } points[] = {
        {1, 2}, {2, 3},
  };

After:
  struct {
    int x;
    int y;
  } points[] = {
      {1, 2}, {2, 3},
  };

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

10 years agoCommit to test commit access
Evgeny Astigeevich [Mon, 20 Oct 2014 09:15:05 +0000 (09:15 +0000)]
Commit to test commit access

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

10 years agoCodeGen: Update for LLVM API change
David Majnemer [Mon, 20 Oct 2014 06:13:36 +0000 (06:13 +0000)]
CodeGen: Update for LLVM API change

Callers of DataLayout::RoundUpAlignment should switch to
RoundUpToAlignment.

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

10 years ago[modules] Add support for #include_next.
Richard Smith [Mon, 20 Oct 2014 00:15:49 +0000 (00:15 +0000)]
[modules] Add support for #include_next.

#include_next interacts poorly with modules: it depends on where in the list of
include paths the current file was found. Files covered by module maps are not
found in include search paths when building the module (and are not found in
include search paths when @importing the module either), so this isn't really
meaningful. Instead, we fake up the result that #include_next *should* have
given: find the first path that would have resulted in the given file being
picked, and search from there onwards.

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

10 years agoCodeGen: ConstStructBuilder must verify packed constraints after padding
David Majnemer [Sun, 19 Oct 2014 23:40:06 +0000 (23:40 +0000)]
CodeGen: ConstStructBuilder must verify packed constraints after padding

This reverts commit r220169 which reverted r220153.  However, it also
contains additional changes:
- We may need to add padding *after* we've packed the struct.  This
  occurs when the aligned next field offset is greater than the new
  field's offset.  When this occurs, we make the struct packed.
  *However*, once packed the next field offset might be less than the
  new feild's offset.  It is in this case that we might further pad the
  struct.
- We would pad structs which were perfectly sized!  This behavior is
  immensely old.  This behavior came from blindly subtracting
  NextFieldOffsetInChars from RecordSize.  This doesn't take into
  account the fact that the struct might have a greater overall
  alignment than the last field.

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

10 years agoPreprocessor.h: Suppress a warning in SkipMainFilePreamble. [-Wsign-compare]
NAKAMURA Takumi [Sun, 19 Oct 2014 19:58:33 +0000 (19:58 +0000)]
Preprocessor.h: Suppress a warning in SkipMainFilePreamble. [-Wsign-compare]

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

10 years agoRevert r220153: "CodeGen: ConstStructBuilder must verify packed constraints after...
Chandler Carruth [Sun, 19 Oct 2014 19:41:46 +0000 (19:41 +0000)]
Revert r220153: "CodeGen: ConstStructBuilder must verify packed constraints after padding"

This commit caused two tests in LNT to regress. I'm able to reproduce on
any platform and will send reproduction steps to the original commit
log. This should restore the LNT bots that have been failing.

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

10 years ago[complex] Teach the complex math IR gen to emit direct math and
Chandler Carruth [Sun, 19 Oct 2014 19:13:49 +0000 (19:13 +0000)]
[complex] Teach the complex math IR gen to emit direct math and
a NaN-test prior to the call to the library function.

This should automatically make fastmath (including just non-NaNs) able to avoid
the expensive libcalls and also open the door to more advanced folding in LLVM
based on the rules for complex math.

Two important notes to remember: first is that this isn't yet a proper
limited range mode, it's still just improving the unlimited range mode.
Also, it isn't really perfecet w.r.t. what an unlimited range mode
should be doing because it isn't quite handling the flags produced by
all the operations in the way desirable for that mode, but then neither
is compiler-rt's libcall. When the compiler-rt libcall is improved to
carefully manage flags, the code emitted here should be improved
correspondingly. And it is still a long-term desirable thing to add
a limited range mode to Clang that would be able to use direct math
without library calls here.

Special thanks to Steve Canon for the careful review on this patch and
teaching me about these issues. =D

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

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

10 years agoclang/test/Layout/itanium-union-bitfield.cpp: Appease i686.
NAKAMURA Takumi [Sun, 19 Oct 2014 18:45:13 +0000 (18:45 +0000)]
clang/test/Layout/itanium-union-bitfield.cpp: Appease i686.

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

10 years ago[analyzer] Tweak MallocSizeOfChecker to not warn when using sizeof(void*) to allocate...
Ted Kremenek [Sun, 19 Oct 2014 07:30:55 +0000 (07:30 +0000)]
[analyzer] Tweak MallocSizeOfChecker to not warn when using sizeof(void*) to allocate a bunch of any pointer type.

This suppresses a common false positive when analyzing libc++.

Along the way, introduce some tests to show this checker actually
works with C++ static_cast<>.

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

10 years agoUse the triple's isiOS() method instead of checking the value directly. NFC.
Bob Wilson [Sun, 19 Oct 2014 02:19:27 +0000 (02:19 +0000)]
Use the triple's isiOS() method instead of checking the value directly. NFC.

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

10 years agoCodeGen: ConstStructBuilder must verify packed constraints after padding
David Majnemer [Sun, 19 Oct 2014 00:03:10 +0000 (00:03 +0000)]
CodeGen: ConstStructBuilder must verify packed constraints after padding

Before, ConstStructBuilder::AppendBytes would check packed constraints
prior to padding being added before the field's offset.  However, adding
this padding might force our struct to be packed.  Because we wouldn't
check *after* adding padding, ConstStructBuilder would be in an
inconsistent state leading to a crash.

This fixes PR21300.

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

10 years agoNew round of fixes for "Always compile debuginfo-tests for the host triple"
Filipe Cabecinhas [Sat, 18 Oct 2014 23:36:12 +0000 (23:36 +0000)]
New round of fixes for "Always compile debuginfo-tests for the host triple"

clang tests were breaking, at least when compiling clang only, from an
installed llvm. Make the lit.cfg script deal with the case when we don't
have a host_triple available.

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

10 years agoUse non-member begin/end for a slight readability improvement.
Benjamin Kramer [Sat, 18 Oct 2014 10:43:51 +0000 (10:43 +0000)]
Use non-member begin/end for a slight readability improvement.

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

10 years ago[libclang] If the code-completion point is inside the preamble, adjust the position...
Argyrios Kyrtzidis [Sat, 18 Oct 2014 06:23:50 +0000 (06:23 +0000)]
[libclang] If the code-completion point is inside the preamble, adjust the position at the beginning of the file after the preamble.

Otherwise we will not hit the code-completion point.

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

10 years ago[libclang] Allow code-completion when pointing at the end-of-file.
Argyrios Kyrtzidis [Sat, 18 Oct 2014 06:19:36 +0000 (06:19 +0000)]
[libclang] Allow code-completion when pointing at the end-of-file.

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

10 years agoPR21305: Typedefs in non-type template parameters in member data pointers.
David Blaikie [Sat, 18 Oct 2014 02:21:26 +0000 (02:21 +0000)]
PR21305: Typedefs in non-type template parameters in member data pointers.

Patch by Stephen Crane!

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

10 years agoAppend the %itanium_abi_host_triple substitution unconditionally
Filipe Cabecinhas [Sat, 18 Oct 2014 00:05:26 +0000 (00:05 +0000)]
Append the %itanium_abi_host_triple substitution unconditionally

We will fail if it's not set, even if we don't substitute.

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

10 years agoFix makefile for debuginfo-tests execution.
Filipe Cabecinhas [Fri, 17 Oct 2014 23:50:47 +0000 (23:50 +0000)]
Fix makefile for debuginfo-tests execution.

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

10 years agoSemaDeclCXX.cpp: UninitializedFieldVisitor: Avoid member initializers to appease...
NAKAMURA Takumi [Fri, 17 Oct 2014 23:46:34 +0000 (23:46 +0000)]
SemaDeclCXX.cpp: UninitializedFieldVisitor: Avoid member initializers to appease msc17.

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

10 years agoFix typo in comment.
Nick Lewycky [Fri, 17 Oct 2014 22:45:44 +0000 (22:45 +0000)]
Fix typo in comment.

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

10 years ago[ASan] Improve blacklisting of global variables.
Alexey Samsonov [Fri, 17 Oct 2014 22:37:33 +0000 (22:37 +0000)]
[ASan] Improve blacklisting of global variables.

This commit changes the way we blacklist global variables in ASan.
Now the global is excluded from instrumentation (either regular
bounds checking, or initialization-order checking) if:

1) Global is explicitly blacklisted by its mangled name.
This part is left unchanged.

2) SourceLocation of a global is in blacklisted source file.
This changes the old behavior, where instead of looking at the
SourceLocation of a variable we simply considered llvm::Module
identifier. This was wrong, as identifier may not correspond to
the file name, and we incorrectly disabled instrumentation
for globals coming from #include'd files.

3) Global is blacklisted by type.
Now we build the type of a global variable using Clang machinery
(QualType::getAsString()), instead of llvm::StructType::getName().

After this commit, the active users of ASan blacklist files
may have to revisit them (this is a backwards-incompatible change).

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

10 years agofix -fsanitize-address-field-padding for the cases with virtual base classes
Kostya Serebryany [Fri, 17 Oct 2014 21:02:13 +0000 (21:02 +0000)]
fix -fsanitize-address-field-padding for the cases with virtual base classes

Summary: Correctly compute the non-virtual size of a class.

Test Plan: Build SPEC 2016 with -fsanitize-address-field-padding

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

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

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

10 years agoFix the rest of PR21289: a pack expansion that we can't expand yet makes a
Richard Smith [Fri, 17 Oct 2014 20:56:14 +0000 (20:56 +0000)]
Fix the rest of PR21289: a pack expansion that we can't expand yet makes a
template specialization type dependent, even if it has no dependent template
arguments. I've filed a corresponding bug against the C++ standard.

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

10 years agoAdd support for initializer lists on field initializers for -Wuninitialized
Richard Trieu [Fri, 17 Oct 2014 20:56:10 +0000 (20:56 +0000)]
Add support for initializer lists on field initializers for -Wuninitialized

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

10 years agoTry to fix parse-progname.c test on Darwin
Hans Wennborg [Fri, 17 Oct 2014 20:55:54 +0000 (20:55 +0000)]
Try to fix parse-progname.c test on Darwin

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

10 years agoDon't forget to substitute into the qualifier when instantiating the definition
Richard Smith [Fri, 17 Oct 2014 20:37:29 +0000 (20:37 +0000)]
Don't forget to substitute into the qualifier when instantiating the definition
of a member function of a class template that is defined outside the template.
This substitution can actually fail in some weird cases.

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

10 years agoMove test/CodeGen/sections.c to CodeGenCXX/sections.cpp
Hans Wennborg [Fri, 17 Oct 2014 18:13:21 +0000 (18:13 +0000)]
Move test/CodeGen/sections.c to CodeGenCXX/sections.cpp

The test was running with -xc++. Seems it wants to be a C++ file.

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

10 years agoRename TemplateArgument::getTypeForDecl to getParamTypeForDecl for clarity
David Blaikie [Fri, 17 Oct 2014 18:00:12 +0000 (18:00 +0000)]
Rename TemplateArgument::getTypeForDecl to getParamTypeForDecl for clarity

Code review feedback from Richard Smith on r219900.

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

10 years agoSema: address post-commit review comment
Saleem Abdulrasool [Fri, 17 Oct 2014 17:20:33 +0000 (17:20 +0000)]
Sema: address post-commit review comment

Hoist the IgnoreParens so that we ignore it around attributes as well in order
to future-proof the code.  Addresses Richard's comments for SVN r219974.

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

10 years agoDriver: support detecting driver mode when clang has a version suffix without dash...
Hans Wennborg [Fri, 17 Oct 2014 17:07:59 +0000 (17:07 +0000)]
Driver: support detecting driver mode when clang has a version suffix without dash (PR21094)

Clang would previously not get into C++ mode when invoked as 'clang++3.6'
(though clang++-3.6 would work).

I found the previous loop logic in this function confusing; hopefully this
makes it a little clearer.

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

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

10 years agoclang-format: Prefer breaking before trailing return arrows.
Daniel Jasper [Fri, 17 Oct 2014 14:37:40 +0000 (14:37 +0000)]
clang-format: Prefer breaking before trailing return arrows.

Before:
  auto SomeFunction(
      A aaaaaaaaaaaaaaaaaaaaa) const -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}

After:
  auto SomeFunction(A aaaaaaaaaaaaaaaaaaaaa) const
      -> decltype(f(aaaaaaaaaaaaaaaaaaaaa)) {}

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

10 years agoclang-format: [Java] Don't break immediately after "throws".
Daniel Jasper [Fri, 17 Oct 2014 13:36:14 +0000 (13:36 +0000)]
clang-format: [Java] Don't break immediately after "throws".

Before:
  public void doSooooooooooooooooooooooooooomething() throws
      LooooooooooooooooooooooooooooongException {}

After:
  public void doSooooooooooooooooooooooooooomething()
      throws LooooooooooooooooooooooooooooongException {}

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

10 years agoRevert r219977, "Re-commit r217995 and follow-up patches (r217997, r218011, r218053...
NAKAMURA Takumi [Fri, 17 Oct 2014 12:48:37 +0000 (12:48 +0000)]
Revert r219977, "Re-commit r217995 and follow-up patches (r217997, r218011, r218053). These were"

It broke some builders. I guess it'd be reproducible with --vg.

  Failing Tests (3):
      Clang :: CXX/except/except.spec/p1.cpp
      Clang :: SemaTemplate/instantiate-exception-spec-cxx11.cpp
      Clang :: SemaTemplate/instantiate-exception-spec.cpp

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

10 years agoAdd explicit triple to clang/test/CodeGen/sanitize-address-field-padding.cpp, for...
NAKAMURA Takumi [Fri, 17 Oct 2014 12:48:01 +0000 (12:48 +0000)]
Add explicit triple to clang/test/CodeGen/sanitize-address-field-padding.cpp, for now. It's incompatible to ms mangling.

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

10 years agocomplex long double support for PowerPC
Joerg Sonnenberger [Fri, 17 Oct 2014 11:51:19 +0000 (11:51 +0000)]
complex long double support for PowerPC

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

10 years agoOptimize Type::isStructureOrClassType() by reusing RT->getDecl().
Yaron Keren [Fri, 17 Oct 2014 11:44:44 +0000 (11:44 +0000)]
Optimize Type::isStructureOrClassType() by reusing RT->getDecl().

RecordType->getDecl() which maps to TagType::getDecl() is not a simple
accessor but a loop on redecls in getInterestingTagDecl.

isStructureOrClassType() was calling getDecl() three times performing
three times the work actually required. It is optimized by calling
RT->getDecl() once and reusing the result three times.

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

10 years agoD5775: The new test case was missing from the preceding commit.
Artyom Skrobov [Fri, 17 Oct 2014 10:25:09 +0000 (10:25 +0000)]
D5775: The new test case was missing from the preceding commit.

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

10 years agoD5775: Fix of assertion failure in case of non-POD unions with bitfields. Patch by...
Artyom Skrobov [Fri, 17 Oct 2014 10:22:03 +0000 (10:22 +0000)]
D5775: Fix of assertion failure in case of non-POD unions with bitfields. Patch by Evgeny Astigeevich!

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

10 years agoUser c-tor name to fix the sanitizer test
Renato Golin [Fri, 17 Oct 2014 10:09:25 +0000 (10:09 +0000)]
User c-tor name to fix the sanitizer test

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

10 years agoTrying to fix failing Clang sanitizer test on ARM bots
Renato Golin [Fri, 17 Oct 2014 09:40:21 +0000 (09:40 +0000)]
Trying to fix failing Clang sanitizer test on ARM bots

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

10 years agoTowards PR21289: don't lose track of unexpanded parameter packs with
Richard Smith [Fri, 17 Oct 2014 02:46:42 +0000 (02:46 +0000)]
Towards PR21289: don't lose track of unexpanded parameter packs with
non-dependent types, in CXXScalarValueInitExprs and in the
nested-name-specifier or template arguments of a DeclRefExpr in particular.

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

10 years agoRemove incorrect usage of JoinedOrSeparate.
Richard Smith [Fri, 17 Oct 2014 01:52:48 +0000 (01:52 +0000)]
Remove incorrect usage of JoinedOrSeparate.

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

10 years agoPR21215: Support -fmodule-map-file being specified multiple times. Support
Richard Smith [Fri, 17 Oct 2014 01:42:53 +0000 (01:42 +0000)]
PR21215: Support -fmodule-map-file being specified multiple times. Support
loading multiple module map files from the same directory.

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

10 years agoSwitch to range-based for loop. No functionality change.
Richard Smith [Fri, 17 Oct 2014 01:26:52 +0000 (01:26 +0000)]
Switch to range-based for loop. No functionality change.

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

10 years agoPer comments on PR12350, move DR244 back from 'done' to 'partial' and add tests showi...
Richard Smith [Fri, 17 Oct 2014 01:03:17 +0000 (01:03 +0000)]
Per comments on PR12350, move DR244 back from 'done' to 'partial' and add tests showing what we get wrong.

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

10 years agoCodeGen: Kill FillInNullDataMemberPointers
David Majnemer [Fri, 17 Oct 2014 01:00:43 +0000 (01:00 +0000)]
CodeGen: Kill FillInNullDataMemberPointers

It exists to handle the case where base subobjects are character arrays.
This never happens.

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

10 years agoAST: Remove dead code from RecordLayoutBuilder
David Majnemer [Fri, 17 Oct 2014 01:00:41 +0000 (01:00 +0000)]
AST: Remove dead code from RecordLayoutBuilder

No functionality change intended.

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

10 years agotrying to fix the new test again, this time for the clang-cmake-armv7-a15 bot
Kostya Serebryany [Fri, 17 Oct 2014 00:47:30 +0000 (00:47 +0000)]
trying to fix the new test again, this time for the clang-cmake-armv7-a15 bot

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

10 years agoSanitizerBlacklist: blacklist functions by their source location.
Alexey Samsonov [Fri, 17 Oct 2014 00:20:19 +0000 (00:20 +0000)]
SanitizerBlacklist: blacklist functions by their source location.

This commit changes the way we blacklist functions in ASan, TSan,
MSan and UBSan. We used to treat function as "blacklisted"
and turned off instrumentation in it in two cases:

1) Function is explicitly blacklisted by its mangled name.
This part is not changed.

2) Function is located in llvm::Module, whose identifier is
contained in the list of blacklisted sources. This is completely
wrong, as llvm::Module may not correspond to the actual source
file function is defined in. Also, function can be defined in
a header, in which case user had to blacklist the .cpp file
this header was #include'd into, not the header itself.
Such functions could cause other problems - for instance, if the
header was included in multiple source files, compiled
separately and linked into a single executable, we could end up
with both instrumented and non-instrumented version of the same
function participating in the same link.

After this change we will make blacklisting decision based on
the SourceLocation of a function definition. If a function is
not explicitly defined in the source file, (for example, the
function is compiler-generated and responsible for
initialization/destruction of a global variable), then it will
be blacklisted if the corresponding global variable is defined
in blacklisted source file, and will be instrumented otherwise.

After this commit, the active users of blacklist files may have
to revisit them. This is a backwards-incompatible change, but
I don't think it's possible or makes sense to support the
old incorrect behavior.

I plan to make similar change for blacklisting GlobalVariables
(which is ASan-specific).

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

10 years agoAppease the buildbots with the special case for non-set variables
Filipe Cabecinhas [Thu, 16 Oct 2014 23:54:26 +0000 (23:54 +0000)]
Appease the buildbots with the special case for non-set variables

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

10 years agoTeach SanitizerBlacklist to blacklist by SourceLocation. NFC.
Alexey Samsonov [Thu, 16 Oct 2014 23:50:26 +0000 (23:50 +0000)]
Teach SanitizerBlacklist to blacklist by SourceLocation. NFC.

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

10 years agoAdded %itanium_abi_host_triple to fix debuginfo-tests when clang is a cross-compiler...
Filipe Cabecinhas [Thu, 16 Oct 2014 23:41:40 +0000 (23:41 +0000)]
Added %itanium_abi_host_triple to fix debuginfo-tests when clang is a cross-compiler by default

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

10 years agoRe-commit r217995 and follow-up patches (r217997, r218011, r218053). These were
Richard Smith [Thu, 16 Oct 2014 23:00:46 +0000 (23:00 +0000)]
Re-commit r217995 and follow-up patches (r217997, r218011, r218053). These were
reverted in r218058 because they triggered a rejects-valid bug in MSVC.

Original commit message from r217995:

Instantiate exception specifications when instantiating function types (other
than the type of a function declaration). We previously didn't instantiate
these at all! This also covers the pathological case where the only mention of
a parameter pack is within the exception specification; this gives us a second
way (other than alias templates) to reach the horrible state where a type
contains an unexpanded pack, but its canonical type does not.

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

10 years agoSema: handle additional case of qualified types
Saleem Abdulrasool [Thu, 16 Oct 2014 22:42:53 +0000 (22:42 +0000)]
Sema: handle additional case of qualified types

A second instance of attributed types escaped the previous change, identified
thanks to Richard Smith!  When deducing the void case, we would also assume that
the type would not be attributed.  Furthermore, properly handle multiple
attributes being applied to a single TypeLoc.

Properly handle this case and future-proof a bit by ignoring parenthesis
further.  The test cases do use the additional parenthesis to ensure that this
case remains properly handled.

Addresses post-commit review comments from Richard Smith to SVN r219851.

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

10 years agotest/CodeGen/sections.c: add triple
Hans Wennborg [Thu, 16 Oct 2014 21:36:23 +0000 (21:36 +0000)]
test/CodeGen/sections.c: add triple

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

10 years agotrying to fix the new test on hexagon-build
Kostya Serebryany [Thu, 16 Oct 2014 21:22:40 +0000 (21:22 +0000)]
trying to fix the new test on hexagon-build

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

10 years agoInsert poisoned paddings between fields in C++ classes so that AddressSanitizer can...
Kostya Serebryany [Thu, 16 Oct 2014 20:54:52 +0000 (20:54 +0000)]
Insert poisoned paddings between fields in C++ classes so that AddressSanitizer can find intra-object-overflow bugs

Summary:
The general approach is to add extra paddings after every field
in AST/RecordLayoutBuilder.cpp, then add code to CTORs/DTORs that poisons the paddings
(CodeGen/CGClass.cpp).

Everything is done under the flag -fsanitize-address-field-padding.
The blacklist file (-fsanitize-blacklist) allows to avoid the transformation
for given classes or source files.

See also https://code.google.com/p/address-sanitizer/wiki/IntraObjectOverflow

Test Plan: run SPEC2006 and some of the Chromium tests with  -fsanitize-address-field-padding

Reviewers: samsonov, rnk, rsmith

Reviewed By: rsmith

Subscribers: majnemer, cfe-commits

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

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

10 years agoMS Compat: mark globals emitted in read-only sections const
Hans Wennborg [Thu, 16 Oct 2014 20:52:46 +0000 (20:52 +0000)]
MS Compat: mark globals emitted in read-only sections const

They cannot be written to, so marking them const makes sense and may improve
optimisation.

As a side-effect, SectionInfos has to be moved from Sema to ASTContext.

It also fixes this problem, that occurs when compiling ATL:

  warning LNK4254: section 'ATL' (C0000040) merged into '.rdata' (40000040) with different attributes

The ATL headers are putting variables in a special section that's marked
read-only. However, Clang currently can't model that read-onlyness in the IR.
But, by making the variables const, the section does become read-only, and
the linker warning is avoided.

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

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

10 years agoNo longer emit diagnostics about unused results (comparisons, etc) from unevaluated...
Aaron Ballman [Thu, 16 Oct 2014 20:13:28 +0000 (20:13 +0000)]
No longer emit diagnostics about unused results (comparisons, etc) from unevaluated contexts. Fixes PR18571.

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

10 years agoUpdate for llvm change.
Rafael Espindola [Thu, 16 Oct 2014 20:00:22 +0000 (20:00 +0000)]
Update for llvm change.

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

10 years agoDebugInfo: Follow up to r219736, also test/demonstrate that we emit the constant...
David Blaikie [Thu, 16 Oct 2014 18:38:36 +0000 (18:38 +0000)]
DebugInfo: Follow up to r219736, also test/demonstrate that we emit the constant value in this case as well.

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

10 years agoFixing comment grammar; NFC.
Aaron Ballman [Thu, 16 Oct 2014 18:09:29 +0000 (18:09 +0000)]
Fixing comment grammar; NFC.

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

10 years agoSpeculatively fix GCC 4.7 build after r219938
Hans Wennborg [Thu, 16 Oct 2014 17:57:41 +0000 (17:57 +0000)]
Speculatively fix GCC 4.7 build after r219938

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

10 years agoSwitching to range-based for loops; NFC.
Aaron Ballman [Thu, 16 Oct 2014 17:53:07 +0000 (17:53 +0000)]
Switching to range-based for loops; NFC.

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

10 years agoFix code to follow the "Don’t use else after a return" rule.
Samuel Benzaquen [Thu, 16 Oct 2014 17:50:19 +0000 (17:50 +0000)]
Fix code to follow the "Don’t use else after a return" rule.

Summary:
Fix code to follow the "Don’t use else after a return" rule.
This is a followup from rL219792.

Reviewers: alexfh

Subscribers: klimek, cfe-commits

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

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

10 years agoUse iterators and algorithms to possibly make this code a bit tidier
David Blaikie [Thu, 16 Oct 2014 17:23:58 +0000 (17:23 +0000)]
Use iterators and algorithms to possibly make this code a bit tidier

(also, the code executed once the element was found was split half
inside the loop and half after it - now put it all together after the
find operation)

I'm a bit concerned that this code is rather untested (commenting out
this whole function and running check-clang doesn't fail any tests)...

And I wish I had polymorphic lambdas.

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

10 years agoRemove one of SanitizerBlacklist::isIn() overloads. NFC.
Alexey Samsonov [Thu, 16 Oct 2014 17:10:38 +0000 (17:10 +0000)]
Remove one of SanitizerBlacklist::isIn() overloads. NFC.

The final goal is to get rid of all the rest overloads that
accept LLVM objects (llvm::Function and llvm::GlobalVariable),
and pass in source-level entities instead.

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

10 years agoUse array_lengthof; NFC.
Hans Wennborg [Thu, 16 Oct 2014 16:54:36 +0000 (16:54 +0000)]
Use array_lengthof; NFC.

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

10 years ago[AArch64] Enable A53 erratum workaround (835769) by default for Android targets
Bradley Smith [Thu, 16 Oct 2014 16:35:14 +0000 (16:35 +0000)]
[AArch64] Enable A53 erratum workaround (835769) by default for Android targets

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

10 years agotests: move test to more appropriate location
Saleem Abdulrasool [Thu, 16 Oct 2014 16:12:41 +0000 (16:12 +0000)]
tests: move test to more appropriate location

The test is a C++ semantic analysis test, move it to SemaCXX from Sema.  NFC.

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

10 years agoOpenCL: Emit global variables in the constant addr space as constant globals
Tom Stellard [Thu, 16 Oct 2014 15:29:19 +0000 (15:29 +0000)]
OpenCL: Emit global variables in the constant addr space as constant globals

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

10 years agoOpenCL: Add -ffake-address-space-map to a test
Tom Stellard [Thu, 16 Oct 2014 15:29:17 +0000 (15:29 +0000)]
OpenCL: Add -ffake-address-space-map to a test

The ensures there is an explicit address space id in the output.

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

10 years agoclang-format: Fix behavior with comments before conditional expressions
Daniel Jasper [Thu, 16 Oct 2014 09:10:11 +0000 (09:10 +0000)]
clang-format: Fix behavior with comments before conditional expressions

Before:
  SomeFunction(aaaaaaaaaaaaaaaaa,
               // comment.
                   ccccccccccccccccc ? aaaaaaaaaaaaaaaaaaaa
                                     : bbbbbbbbbbbbbbbbbbbb);

After:
  SomeFunction(aaaaaaaaaaaaaaaaa,
               // comment.
               ccccccccccccccccc ? aaaaaaaaaaaaaaaaaaaa : bbbbbbbbbbbbbbbbbbbb);

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

10 years agoclang-format: [ObjC] Fix method expression detection.
Daniel Jasper [Thu, 16 Oct 2014 08:38:51 +0000 (08:38 +0000)]
clang-format: [ObjC] Fix method expression detection.

Before:
  return (a)[foo bar : baz];

After:
  return (a)[foo bar:baz];

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

10 years agoFrontend: Fix some underscore-then-capital UB
Justin Bogner [Thu, 16 Oct 2014 06:00:55 +0000 (06:00 +0000)]
Frontend: Fix some underscore-then-capital UB

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

10 years agospecify dwarf version for Solaris
Alexander Eremin [Thu, 16 Oct 2014 05:55:24 +0000 (05:55 +0000)]
specify dwarf version for Solaris

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

10 years agoPR21246: DebugInfo: Emit the appropriate type (cv qualifiers, reference-ness, etc...
David Blaikie [Thu, 16 Oct 2014 04:21:25 +0000 (04:21 +0000)]
PR21246: DebugInfo: Emit the appropriate type (cv qualifiers, reference-ness, etc) for non-type template parameters

Plumb through the full QualType of the TemplateArgument::Declaration, as
it's insufficient to only know whether the type is a reference or
pointer (that was necessary for mangling, but insufficient for debug
info). This shouldn't increase the size of TemplateArgument as
TemplateArgument::Integer is still longer by another 32 bits.

Several bits of code were testing that the reference-ness of the
parameters matched, but this seemed to be insufficient (various other
features of the type could've mismatched and wouldn't've been caught)
and unnecessary, at least insofar as removing those tests didn't cause
anything to fail.

(Richard - perchaps you can hypothesize why any of these checks might
need to test reference-ness of the parameters (& explain why
reference-ness is part of the mangling - I would've figured that for the
reference-ness to be different, a prior template argument would have to
be different). I'd be happy to add them in/beef them up and add test
cases if there's a reason for them)

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

10 years agoBugfix in template instantiation in CXXPseudoDestructorExpr.
Alexey Bataev [Thu, 16 Oct 2014 03:04:35 +0000 (03:04 +0000)]
Bugfix in template instantiation in CXXPseudoDestructorExpr.
Fix for clang crash when instantiating a template with qualified lookup for members in non-class types.
Differential Revision: http://reviews.llvm.org/D5769

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

10 years agoDebugInfo: Cleanup testing of non-type template parameters.
David Blaikie [Thu, 16 Oct 2014 00:41:40 +0000 (00:41 +0000)]
DebugInfo: Cleanup testing of non-type template parameters.

Separate out the non-nullable parameters from the nullable ones
(currently only the template template parameter) and demonstrate that
cv-qualifiers aren't preserved for non-null parameters (but are
preserved for null parameters) by adding 'const' to an int* non-type
template parameter.

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

10 years ago[CMake] clangBasic: Add Core to LINK_COMPONENTS introduced by r219840.
NAKAMURA Takumi [Thu, 16 Oct 2014 00:12:02 +0000 (00:12 +0000)]
[CMake] clangBasic: Add Core to LINK_COMPONENTS introduced by r219840.

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

10 years agoMoving CGF::EmitAlignmentAssumption to IRBuilder
Hal Finkel [Wed, 15 Oct 2014 23:45:08 +0000 (23:45 +0000)]
Moving CGF::EmitAlignmentAssumption to IRBuilder

The functionality contained in CodeGenFunction::EmitAlignmentAssumption has
been moved to IRBuilder (so that it can also be used by LLVM-level code).
Remove this now-duplicate implementation in favor of the IRBuilder code.

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

10 years agoCodeGen: Don't drop thread_local when emitting __thread aliases
David Majnemer [Wed, 15 Oct 2014 22:38:23 +0000 (22:38 +0000)]
CodeGen: Don't drop thread_local when emitting __thread aliases

CodeGen wouldn't mark the aliasee as thread_local if the aliasee was a
tentative definition.

Even if the definition was already emitted, it would never mark the
alias as thread_local.

This fixes PR21288.

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

10 years agoMove SanitizerBlacklist object from CodeGenModule to ASTContext.
Alexey Samsonov [Wed, 15 Oct 2014 22:17:27 +0000 (22:17 +0000)]
Move SanitizerBlacklist object from CodeGenModule to ASTContext.

Soon we'll need to have access to blacklist before the CodeGen
phase (see http://reviews.llvm.org/D5687), so parse and construct
the blacklist earlier.

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

10 years agoAvoid having "using namespace" for both "clang" and "llvm" namespaces.
Alexey Samsonov [Wed, 15 Oct 2014 22:00:40 +0000 (22:00 +0000)]
Avoid having "using namespace" for both "clang" and "llvm" namespaces.
This is fragile, as there are classes with the same name in both
namespaces (e.g. llvm::Module and clang::Module).

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

10 years agoSema: handle AttributedTypeLocs in C++14 auto deduction
Saleem Abdulrasool [Wed, 15 Oct 2014 21:37:55 +0000 (21:37 +0000)]
Sema: handle AttributedTypeLocs in C++14 auto deduction

When performing a type deduction from the return type, the FunctionDecl may be
attributed with a calling convention.  In such a case, the retrieved type
location may be an AttributedTypeLoc.  Performing a castAs<FunctionProtoTypeLoc>
on such a type loc would result in an assertion as they are not derived types.

Ensure that we correctly handle the attributed type location by looking through
it to the modified type loc.

Fixes an assertion triggered in C++14 mode.

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