]> granicus.if.org Git - clang/log
clang
10 years ago[HeaderSearch] Make sure we clear the mapped name from the LookupFileCacheInfo when...
Argyrios Kyrtzidis [Sat, 29 Mar 2014 03:22:54 +0000 (03:22 +0000)]
[HeaderSearch] Make sure we clear the mapped name from the LookupFileCacheInfo when we reset the start point.

rdar://16462455

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

10 years agoImprove -Wunreachable-code to provide a means to indicate code is intentionally marke...
Ted Kremenek [Sat, 29 Mar 2014 00:35:20 +0000 (00:35 +0000)]
Improve -Wunreachable-code to provide a means to indicate code is intentionally marked dead via if((0)).

Taking a hint from -Wparentheses, use an extra '()' as a sigil that
a dead condition is intentionally dead.  For example:

  if ((0)) { dead }

When this sigil is found, do not emit a dead code warning.  When the
analysis sees:

  if (0)

it suggests inserting '()' as a Fix-It.

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

10 years agoPR19278: Align ASTTemplateArgumentListInfo to match its following dynamic array
Richard Smith [Fri, 28 Mar 2014 23:32:39 +0000 (23:32 +0000)]
PR19278: Align ASTTemplateArgumentListInfo to match its following dynamic array
of TemplateArgumentLocs. 'uint64_t' has higher alignment requirements than a
pointer on some platforms.

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

10 years agoObjective-C. Make -Wselector-type-mismatch off by
Fariborz Jahanian [Fri, 28 Mar 2014 23:23:12 +0000 (23:23 +0000)]
Objective-C. Make -Wselector-type-mismatch off by
default until we provide a work-around for warning
suppression.

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

10 years ago[SemaObjC] For the semantics of the designated-initializer attribute, consider that...
Argyrios Kyrtzidis [Fri, 28 Mar 2014 22:45:38 +0000 (22:45 +0000)]
[SemaObjC] For the semantics of the designated-initializer attribute, consider that the ObjC interface of the class
includes its class extensions.

This is follow-up for rdar://16305347

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

10 years agolibclang/libIndex: USR generation: mangle source location into USRs for macros,
Dmitri Gribenko [Fri, 28 Mar 2014 22:21:26 +0000 (22:21 +0000)]
libclang/libIndex: USR generation: mangle source location into USRs for macros,
unless the macro comes from a system header

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

10 years agoReapply "OnDiskHashTable: Use Endian.h to read little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 22:03:24 +0000 (22:03 +0000)]
Reapply "OnDiskHashTable: Use Endian.h to read little endian ostreams"

Committed this by accident before it was done last time.

Original message:

    Rather than rolling our own functions to read little endian data
    from a buffer, we can use the support in llvm's Endian.h.

    No functional change.

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

10 years agoReapply "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 22:03:19 +0000 (22:03 +0000)]
Reapply "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"

Committed this by accident before it was done last time.

Original message:

    Rather than rolling our own functions to write little endian data
    to an ostream, we can use the support in llvm's EndianStream.h.

    No functional change.

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

10 years agoSimplify clang-cl's target triple setting
Hans Wennborg [Fri, 28 Mar 2014 20:49:28 +0000 (20:49 +0000)]
Simplify clang-cl's target triple setting

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

10 years agoTry to fix the cl-options.c test on ARM bots
Hans Wennborg [Fri, 28 Mar 2014 20:45:05 +0000 (20:45 +0000)]
Try to fix the cl-options.c test on ARM bots

The test was failing because clang-cl changes the default triple
to target MSVC-style Win32. This is kind of wonky, but hasn't been
a problem until we started warning:

  warning: unknown platform, assuming -mfloat-abi=soft

Some of the tests in cl-options.c were running with -Werror, causing them
to fail.

Fixing this by FileCheck-ifying those tests instead of using -Werror.

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

10 years agoRevert "OnDiskHashTable: Use Endian.h to read little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 20:32:17 +0000 (20:32 +0000)]
Revert "OnDiskHashTable: Use Endian.h to read little endian ostreams"

This reverts commit r205045.

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

10 years agoRevert "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"
Justin Bogner [Fri, 28 Mar 2014 20:32:11 +0000 (20:32 +0000)]
Revert "OnDiskHashTable: Use EndianStream.h to write little endian ostreams"

This reverts commit r205044.

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

10 years agoOnDiskHashTable: Use Endian.h to read little endian ostreams
Justin Bogner [Fri, 28 Mar 2014 20:04:01 +0000 (20:04 +0000)]
OnDiskHashTable: Use Endian.h to read little endian ostreams

Rather than rolling our own functions to read little endian data from
a buffer, we can use the support in llvm's Endian.h.

No functional change.

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

10 years agoOnDiskHashTable: Use EndianStream.h to write little endian ostreams
Justin Bogner [Fri, 28 Mar 2014 20:03:54 +0000 (20:03 +0000)]
OnDiskHashTable: Use EndianStream.h to write little endian ostreams

Rather than rolling our own functions to write little endian data to
an ostream, we can use the support in llvm's EndianStream.h.

No functional change.

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

10 years agoUse constexpr again, this time portably
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 19:27:37 +0000 (19:27 +0000)]
Use constexpr again, this time portably

Responding to Justin's review of r205025.

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

10 years agoDocumentation: remove a spurious '1' and wrap to 80 columns
Dmitri Gribenko [Fri, 28 Mar 2014 19:25:09 +0000 (19:25 +0000)]
Documentation: remove a spurious '1' and wrap to 80 columns

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

10 years agoDocument module.private.modulemap and module_private.map.
Douglas Gregor [Fri, 28 Mar 2014 19:05:18 +0000 (19:05 +0000)]
Document module.private.modulemap and module_private.map.

Requested in <rdar://problem/16188740>.

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

10 years agoInstrProf: Fix MSVC after r205023
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 18:22:26 +0000 (18:22 +0000)]
InstrProf: Fix MSVC after r205023

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

10 years agoObjective-C. revert r204965. This will make
Fariborz Jahanian [Fri, 28 Mar 2014 18:22:16 +0000 (18:22 +0000)]
Objective-C. revert r204965. This will make
-Wselector-type-mismatch default again. After
internal discussions, we think that in most cases
it has helped our developers find hard to detect
undefined behaviors. We are going to provide a syntax
(and fix-it) to suppress the warning in remaining of
false positive cases.

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

10 years agoInstrProf: Emit runtime hook directly in IRGen
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 17:53:22 +0000 (17:53 +0000)]
InstrProf: Emit runtime hook directly in IRGen

-u behaviour is apparently not portable between linkers (see cfe-commits
discussions for r204379 and r205012).  I've moved the logic to IRGen,
where it should have been in the first place.

I don't have a Linux system to test this on, so it's possible this logic
*still* doesn't pull in the instrumented profiling runtime on Linux.

I'm in the process of getting tests going on the compiler-rt side
(llvm-commits "[PATCH] InstrProf: Add initial compiler-rt test").  Once
we have tests for the full flow there, the runtime logic should get a
whole lot less brittle.

<rdar://problem/16458307>

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

10 years agoRevert "Link in profile library on Linux using --whole-archive"
Duncan P. N. Exon Smith [Fri, 28 Mar 2014 17:53:17 +0000 (17:53 +0000)]
Revert "Link in profile library on Linux using --whole-archive"

This reverts commit r205012.

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

10 years agoFix a FIXME, use std::move.
Richard Smith [Fri, 28 Mar 2014 17:31:23 +0000 (17:31 +0000)]
Fix a FIXME, use std::move.

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

10 years agoLink in profile library on Linux using --whole-archive
Alexey Samsonov [Fri, 28 Mar 2014 15:39:08 +0000 (15:39 +0000)]
Link in profile library on Linux using --whole-archive

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

10 years agoclang-format: Fix aligning of comments and escaped newlines in macros.
Daniel Jasper [Fri, 28 Mar 2014 15:06:01 +0000 (15:06 +0000)]
clang-format: Fix aligning of comments and escaped newlines in macros.

Before:
  #define A      \
    int i;   /*a*/ \
    int jjj; /*b*/

After:
  #define A        \
    int i;   /*a*/ \
    int jjj; /*b*/

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

10 years agoAdd ARM big endian Target (armeb, thumbeb)
Christian Pirker [Fri, 28 Mar 2014 14:40:46 +0000 (14:40 +0000)]
Add ARM big endian Target (armeb, thumbeb)

Reviewed at http://llvm-reviews.chandlerc.com/D3096

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

10 years agoUse the correct trailing comment syntax
Dmitri Gribenko [Fri, 28 Mar 2014 10:09:39 +0000 (10:09 +0000)]
Use the correct trailing comment syntax

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

10 years agoGet rid of the adapted isLiteral method.
Manuel Klimek [Fri, 28 Mar 2014 09:27:09 +0000 (09:27 +0000)]
Get rid of the adapted isLiteral method.

We don't want to deviate from clang's standard terminology.

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

10 years agoclang-format: Recognize more ObjC blocks with parameters/return type.
Daniel Jasper [Fri, 28 Mar 2014 07:48:59 +0000 (07:48 +0000)]
clang-format: Recognize more ObjC blocks with parameters/return type.

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

10 years agoclang-cl wants MSVC-style win32
Hans Wennborg [Fri, 28 Mar 2014 01:19:04 +0000 (01:19 +0000)]
clang-cl wants MSVC-style win32

This should fix the clang-cl tests after the Windows target triple
canonicalization (r204978)

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

10 years agoUse the new Windows environment for target detection
Saleem Abdulrasool [Thu, 27 Mar 2014 22:50:18 +0000 (22:50 +0000)]
Use the new Windows environment for target detection

This follows the LLVM change to canonicalise the Windows target triple
spellings.  Rather than treating each Windows environment as a single entity,
the environments are now modelled properly as an environment.  This is a
mechanical change to convert the triple use to reflect that change.

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

10 years agoReverting r204968 and r204969; while more build bots are happy with the results,...
Aaron Ballman [Thu, 27 Mar 2014 22:37:56 +0000 (22:37 +0000)]
Reverting r204968 and r204969; while more build bots are happy with the results, some still have link errors.

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

10 years agoUrgh. Amending r204968 which somehow missed this file!
Aaron Ballman [Thu, 27 Mar 2014 22:15:55 +0000 (22:15 +0000)]
Urgh. Amending r204968 which somehow missed this file!

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

10 years agoReapplying r204952 with fixes which should hopefully resolve linking issues with...
Aaron Ballman [Thu, 27 Mar 2014 22:12:09 +0000 (22:12 +0000)]
Reapplying r204952 with fixes which should hopefully resolve linking issues with non-MSVC compilers.

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

10 years agoObjective-C. Make multiple selector warning
Fariborz Jahanian [Thu, 27 Mar 2014 21:59:01 +0000 (21:59 +0000)]
Objective-C. Make multiple selector warning
an opt-in option under -Wselector-type-mismatch.
// rdar://16445728

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

10 years agoSupport for -Wa,-compress-debug-sections.
David Blaikie [Thu, 27 Mar 2014 20:47:30 +0000 (20:47 +0000)]
Support for -Wa,-compress-debug-sections.

Also, while I'm here, support -nocompress-debug-sections too.

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

10 years agoReverting r204952, while I figure out what's going on with the makefile build.
Aaron Ballman [Thu, 27 Mar 2014 20:36:32 +0000 (20:36 +0000)]
Reverting r204952, while I figure out what's going on with the makefile build.

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

10 years agoDon't emit exit-time destructor warnings for trivial explicitly defaulted dtors
Stephan Tolksdorf [Thu, 27 Mar 2014 20:23:36 +0000 (20:23 +0000)]
Don't emit exit-time destructor warnings for trivial explicitly defaulted dtors

This commit also adds an additional test case for the global destructor warning.

Reviewed in http://llvm-reviews.chandlerc.com/D3205

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

10 years agoRecognize simple cases of trivial explicitly defaulted public dtors as irrelevant
Stephan Tolksdorf [Thu, 27 Mar 2014 20:23:12 +0000 (20:23 +0000)]
Recognize simple cases of trivial explicitly defaulted public dtors as irrelevant

Reviewed in http://llvm-reviews.chandlerc.com/D3190

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

10 years agoClean up the __has_attribute implementation without modifying its behavior.
Aaron Ballman [Thu, 27 Mar 2014 20:19:24 +0000 (20:19 +0000)]
Clean up the __has_attribute implementation without modifying its behavior.

Replaces the tablegen-driven AttrSpellings.inc, which lived in the lexing layer with AttrHasAttributeImpl.inc, which lives in the basic layer. Updates the preprocessor to call through to this new functionality which can take additional information into account (such as scopes and syntaxes).

Expose the ability for parts of the compiler to ask whether an attribute is supported for a given spelling (including scope), syntax, triple and language options.

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

10 years agoFix PR18307: Properly (de)serialize inherited constructors and their using declarations
Stephan Tolksdorf [Thu, 27 Mar 2014 19:22:19 +0000 (19:22 +0000)]
Fix PR18307: Properly (de)serialize inherited constructors and their using declarations

Reviewed in http://llvm-reviews.chandlerc.com/D3102

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

10 years agoImprove handling of bool expressions in template arguments.
Manuel Klimek [Thu, 27 Mar 2014 19:00:52 +0000 (19:00 +0000)]
Improve handling of bool expressions in template arguments.

Now correctly formats:
  foo<true && false>();

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

10 years agoAdd an explanatory comment and FIXME about the function declaration
Eric Christopher [Thu, 27 Mar 2014 18:50:35 +0000 (18:50 +0000)]
Add an explanatory comment and FIXME about the function declaration
for a subprogram DIE.

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

10 years agoComment parsing: use different comment styles in different test cases
Dmitri Gribenko [Thu, 27 Mar 2014 16:42:56 +0000 (16:42 +0000)]
Comment parsing: use different comment styles in different test cases

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

10 years agoComment parsing: attach comments to enums declared using the NS_ENUM macro
Dmitri Gribenko [Thu, 27 Mar 2014 16:40:51 +0000 (16:40 +0000)]
Comment parsing: attach comments to enums declared using the NS_ENUM macro

Previously we would only attach comments to the typedef.

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

10 years agoEnforce the restriction that a parameter to a kernel function
David Tweed [Thu, 27 Mar 2014 16:34:11 +0000 (16:34 +0000)]
Enforce the restriction that a parameter to a kernel function
cannot be a pointer to the private address space (as clarified
in the OpenCL 1.2 specification).

Patch by Fraser Cormack!

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

10 years agoInstrProf: Pull in runtime on non-Darwin
Duncan P. N. Exon Smith [Thu, 27 Mar 2014 16:20:02 +0000 (16:20 +0000)]
InstrProf: Pull in runtime on non-Darwin

r204379 changed the way the profile runtime gets pulled in, but missed
updating non-Darwin targets.

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

10 years agoAdd a module cache path to the test that uses -fmodules
Dmitri Gribenko [Thu, 27 Mar 2014 16:15:30 +0000 (16:15 +0000)]
Add a module cache path to the test that uses -fmodules

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

10 years agoclang-format: Avoid line-breaks that increase the current column.
Daniel Jasper [Thu, 27 Mar 2014 16:14:13 +0000 (16:14 +0000)]
clang-format: Avoid line-breaks that increase the current column.

While these might make sense for some rule (e.g. break after multi-line
operand), they generally appear ugly and confusing.

Before:
  fffffffffff(R\"x(
  multiline raw string literal xxxxxxxxxxxxxx
  )x\" + bbbbbb)

After:
  fffffffffff(R\"x(
  multiline raw string literal xxxxxxxxxxxxxx
  )x\" +
              bbbbbb)

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

10 years agoComment parsing: when comment ranges are deserialized from multiple modules,
Dmitri Gribenko [Thu, 27 Mar 2014 15:40:39 +0000 (15:40 +0000)]
Comment parsing: when comment ranges are deserialized from multiple modules,
correctly order comments in SourceManager::isBeforeInTranslationUnit() order

Unfortunately, this is not as simple as it was implemented previously, and
actually requires doing a merge sort.

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

10 years agoHandle and warn on aliases to weak aliases.
Rafael Espindola [Thu, 27 Mar 2014 15:27:20 +0000 (15:27 +0000)]
Handle and warn on aliases to weak aliases.

This produces valid IR now that llvm rejects aliases to weak aliases and warns
the user that the resolution is not changed if the weak alias is overridden.

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

10 years ago[OPENMP] OMPExecutableDirective re-factoring
Alexander Musman [Thu, 27 Mar 2014 15:14:18 +0000 (15:14 +0000)]
[OPENMP] OMPExecutableDirective re-factoring

Store the number of clauses and children of OMPExecutableDirective and dynamically compute the locations of corresponding arrays.

http://llvm-reviews.chandlerc.com/D2977

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

10 years agoclang-format: Extract getNewLineColumn out of addTokenOnNewLine.
Daniel Jasper [Thu, 27 Mar 2014 14:33:30 +0000 (14:33 +0000)]
clang-format: Extract getNewLineColumn out of addTokenOnNewLine.

No functional changes intended.

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

10 years agoFix bool expression special case.
Manuel Klimek [Thu, 27 Mar 2014 11:17:36 +0000 (11:17 +0000)]
Fix bool expression special case.

Clang-format now correctly formats:
  some_type<a * b> v;
  template <bool a, bool b> typename enabled_if<a && b>::type f() {}

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

10 years ago[cleanup] Stop specifying size overrides for BumpPtrAllocators.
Chandler Carruth [Thu, 27 Mar 2014 10:45:22 +0000 (10:45 +0000)]
[cleanup] Stop specifying size overrides for BumpPtrAllocators.

These don't seem to have any real point. Let's start with
IndexingContext. I can't come up with any conceivable reason to have
many hundereds of thousands of these alive in an address space which
would make the 4x difference in allocated (but unused) memory for the
string scratch buffer a significant memory usage problem.

The EditedSource one is somewhat more surprising. This is an 8x increase
in the memory allocated (but not used) per editted source file. However,
for this to realistically be a problem, you would need to have over half
a million editted source files in a single address space, and even that
would only really have problems on 32-bit Windows where you really only
have 2gb of virtual address space. And what's more important, the fix to
this if it is actually an issue shouldn't be to shrink the allocator's
size, it is to pass a single allocator into *many* edited source file
objects and let them share the memory.

These were the only two uses of custom sized BumpPtrAllocators
(excluding ones in the JIT using a custom allocation strategy) in all of
LLVM, Clang, LLD, LLDB, or Polly. I don't think we actually need this
complexity in the primary BumpPtrAllocator at all and am planning to
remove it.

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

10 years agoclang-format: Correctly identify ObjC Block with return type.
Daniel Jasper [Thu, 27 Mar 2014 09:43:54 +0000 (09:43 +0000)]
clang-format: Correctly identify ObjC Block with return type.

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

10 years agoRevert "Just call getContextDescriptor to get the context for subprograms"
Eric Christopher [Thu, 27 Mar 2014 05:29:34 +0000 (05:29 +0000)]
Revert "Just call getContextDescriptor to get the context for subprograms"
while I investigate as it seems to be causing issues with the gdb bot.

This reverts commit r204874.

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

10 years agoPR19252: Fix crash if alignas is used with an auto-typed variable. Don't check
Richard Smith [Thu, 27 Mar 2014 01:22:48 +0000 (01:22 +0000)]
PR19252: Fix crash if alignas is used with an auto-typed variable. Don't check
the type of the variable until it's known.

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

10 years agoDon't produce a L symbol in __DATA,__data.
Rafael Espindola [Thu, 27 Mar 2014 00:02:45 +0000 (00:02 +0000)]
Don't produce a L symbol in __DATA,__data.

The section __DATA,__data is atomized by the linker and cannot have L symbols.

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

10 years agoMS asm: Filter out fpsw clobbers
Reid Kleckner [Thu, 27 Mar 2014 00:00:03 +0000 (00:00 +0000)]
MS asm: Filter out fpsw clobbers

When parsing MS inline assembly, we note that fpsw is an implicit def of
most x87 FP operations, and add it to the clobber list.  However, we
don't recognize fpsw as a gcc register name, and we assert.  Clang
always adds an fpsr clobber, which means the same thing to LLVM, so we
can just use that.

This test case was broken by my LLVM change r196939.

Reviewers: echristo

Differential Revision: http://llvm-reviews.chandlerc.com/D2993

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

10 years agoJust call getContextDescriptor to get the context for subprograms
Eric Christopher [Wed, 26 Mar 2014 23:09:30 +0000 (23:09 +0000)]
Just call getContextDescriptor to get the context for subprograms
instead of rolling an inefficient version of the function. This
changes some order of emission of metadata nodes, fix up those
testcases and make them more flexible to some changes.

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

10 years agoTry to fix arm bots by removing a superfluous __cdecl
Reid Kleckner [Wed, 26 Mar 2014 22:52:23 +0000 (22:52 +0000)]
Try to fix arm bots by removing a superfluous __cdecl

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

10 years agoPR19254: If a thread_local data member of a class is accessed via member access
Richard Smith [Wed, 26 Mar 2014 22:48:22 +0000 (22:48 +0000)]
PR19254: If a thread_local data member of a class is accessed via member access
syntax, don't forget to run its initializer.

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

10 years agoObjective-C. Improve diagnostic error for '@import'
Fariborz Jahanian [Wed, 26 Mar 2014 22:02:43 +0000 (22:02 +0000)]
Objective-C. Improve diagnostic error for '@import'
when modules are disabled. // rdar://15505492

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

10 years agoObjective-C. Fixes a bogus warning on unimplemented
Fariborz Jahanian [Wed, 26 Mar 2014 20:59:26 +0000 (20:59 +0000)]
Objective-C. Fixes a bogus warning on unimplemented
selectors because we were not going through entire
elements in list of all implemented selectors.
// rdar://16428638

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

10 years agoInstrProf: Use unique_ptr
Duncan P. N. Exon Smith [Wed, 26 Mar 2014 19:26:05 +0000 (19:26 +0000)]
InstrProf: Use unique_ptr

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

10 years agoInstrProf: Use references
Duncan P. N. Exon Smith [Wed, 26 Mar 2014 19:26:02 +0000 (19:26 +0000)]
InstrProf: Use references

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

10 years ago[analyzer] Remove the implemented Identical* checkers from the "potential" list.
Jordan Rose [Wed, 26 Mar 2014 18:59:22 +0000 (18:59 +0000)]
[analyzer] Remove the implemented Identical* checkers from the "potential" list.

Edit by Daniel Fahlgren.

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

10 years agoFix atomic libcall.
Logan Chien [Wed, 26 Mar 2014 17:35:01 +0000 (17:35 +0000)]
Fix atomic libcall.

This commit fixes a cast instruction assertion failure
due to the incompatible type cast.  This will only happen when
the target requires atomic libcalls.

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

10 years ago[analyzer] Handle the M_ZERO and __GFP_ZERO flags in kernel mallocs.
Jordan Rose [Wed, 26 Mar 2014 17:05:46 +0000 (17:05 +0000)]
[analyzer] Handle the M_ZERO and __GFP_ZERO flags in kernel mallocs.

Add M_ZERO awareness to malloc() static analysis in Clang for FreeBSD,
NetBSD, and OpenBSD in a similar fashion to O_CREAT for open(2).
These systems have a three-argument malloc() in the kernel where the
third argument contains flags; the M_ZERO flag will zero-initialize the
allocated buffer.

This should reduce the number of false positives when running static
analysis on BSD kernels.

Additionally, add kmalloc() (Linux kernel malloc()) and treat __GFP_ZERO
like M_ZERO on Linux.

Future work involves a better method of checking for named flags without
hardcoding values.

Patch by Conrad Meyer, with minor modifications by me.

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

10 years agoRecommit r204493 with a fix to look in both clang and llvm directories.
Paul Robinson [Wed, 26 Mar 2014 16:40:43 +0000 (16:40 +0000)]
Recommit r204493 with a fix to look in both clang and llvm directories.
Hopefully addresses r204539.

Make clang/test/lit.cfg pre-scan the RUN line looking for tool names,
and substitute fully qualified path names pointing to the build
directory.  This ensures we're testing the just-built tools.

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

10 years agoIntrin.h: Implement _InterlockedExchangePointer
Reid Kleckner [Wed, 26 Mar 2014 16:09:48 +0000 (16:09 +0000)]
Intrin.h: Implement _InterlockedExchangePointer

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

10 years ago-Wglobal-constructors: Don't warn on trivial defaulted dtors
Reid Kleckner [Wed, 26 Mar 2014 15:58:20 +0000 (15:58 +0000)]
-Wglobal-constructors: Don't warn on trivial defaulted dtors

Fixes PR19253.

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

10 years ago-fms-extensions: Add __va_start builtin, which is used for x64
Reid Kleckner [Wed, 26 Mar 2014 15:38:33 +0000 (15:38 +0000)]
-fms-extensions: Add __va_start builtin, which is used for x64

The main difference between __va_start and __builtin_va_start is that
the address of the va_list has already been taken, and the va_list is
always a char*.

__va_end and __va_arg are not needed.

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

10 years agoAdd support for __builtin___clear_cache in Clang
Renato Golin [Wed, 26 Mar 2014 15:36:05 +0000 (15:36 +0000)]
Add support for __builtin___clear_cache in Clang

Adding the mapping between __builtin___clear_cache into @llvm.clear_cache

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

10 years agoARM: be more flexible about how --mhwdiv is accepted.
Tim Northover [Wed, 26 Mar 2014 14:09:48 +0000 (14:09 +0000)]
ARM: be more flexible about how --mhwdiv is accepted.

Patch by Gabor Ballabas.

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

10 years agoFrom Matt Thomas: use long long for [u]int64_t and [u]intmax_t on
Joerg Sonnenberger [Wed, 26 Mar 2014 11:48:29 +0000 (11:48 +0000)]
From Matt Thomas: use long long for [u]int64_t and [u]intmax_t on
NetBSD/aarch64 to simplify code sharing with NetBSD/arm.

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

10 years agoMake the 'for (auto ...)' names more readable
Timur Iskhodzhanov [Wed, 26 Mar 2014 08:22:48 +0000 (08:22 +0000)]
Make the 'for (auto ...)' names more readable

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

10 years agoFix PR19066 - 0-sized vftable in the presence of virtual inheritance
Timur Iskhodzhanov [Wed, 26 Mar 2014 08:12:53 +0000 (08:12 +0000)]
Fix PR19066 - 0-sized vftable in the presence of virtual inheritance

Reviewed at http://llvm-reviews.chandlerc.com/D3181

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

10 years agoRevert "Update for llvm api change."
Rafael Espindola [Wed, 26 Mar 2014 06:14:54 +0000 (06:14 +0000)]
Revert "Update for llvm api change."

This reverts commit r204783.

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

10 years agoUpdate for llvm api change.
Rafael Espindola [Wed, 26 Mar 2014 05:34:18 +0000 (05:34 +0000)]
Update for llvm api change.

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

10 years agoAdd existing warnings to -Waddress so that it works closer to what GCC has.
Richard Trieu [Wed, 26 Mar 2014 01:55:33 +0000 (01:55 +0000)]
Add existing warnings to -Waddress so that it works closer to what GCC has.
Previously, -Waddress was empty.

Fixes PR9043.

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

10 years agoMove the -i[no-]system-prefix options from CC1Options.td to Options.td.
Alexander Kornienko [Wed, 26 Mar 2014 01:39:59 +0000 (01:39 +0000)]
Move the -i[no-]system-prefix options from CC1Options.td to Options.td.

Summary:
This allows them to be used without -cc1 the same way as -I and -isystem.
Renamed the options to --system-header-prefix=/--no-system-header-prefix to avoid interference with -isystem and make the intent of the option cleaner.

Reviewers: rsmith

Reviewed By: rsmith

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3185

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

10 years ago[PGO] Add simplified branch weights for Objective-C for-collection loops.
Bob Wilson [Tue, 25 Mar 2014 23:26:31 +0000 (23:26 +0000)]
[PGO] Add simplified branch weights for Objective-C for-collection loops.

Conceptually one of these loops is just a while-loop, but the actual code-gen
is more complicated. We don't instrument all the different control flow edges
to get accurate counts for each conditional branch, nor do I think it makes
sense to do so. Instead, make the simplifying assumption that the loop behaves
like a while-loop. Use the same branch weights for the first check for an
empty collection as would be used for the back-edge of a while loop, and use
that same weighting for the innermost loop, ignoring the possibility that there
may be some extra code to go fetch more elements.

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

10 years agoPR19249: Don't forget to DiagnoseUseOfDecl for the implicit use of a variable
Richard Smith [Tue, 25 Mar 2014 21:11:32 +0000 (21:11 +0000)]
PR19249: Don't forget to DiagnoseUseOfDecl for the implicit use of a variable
in a lambda capture.

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

10 years agoUse an option alias to implement -gmlt
David Blaikie [Tue, 25 Mar 2014 20:42:27 +0000 (20:42 +0000)]
Use an option alias to implement -gmlt

Review feedback from Reid Kleckner on r203603.

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

10 years ago-fms-compatibility: Only form implicit member exprs for unqualified ids
Reid Kleckner [Tue, 25 Mar 2014 20:31:28 +0000 (20:31 +0000)]
-fms-compatibility: Only form implicit member exprs for unqualified ids

If there are any scope specifiers, then a base class must be named or
the symbol isn't from a base class.

Fixes PR19233.

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

10 years agoMS ABI: Mark direct virtual bases as visted when building vtable paths
Reid Kleckner [Tue, 25 Mar 2014 18:33:27 +0000 (18:33 +0000)]
MS ABI: Mark direct virtual bases as visted when building vtable paths

Fixes PR19240.  In retrospect, this is a fairly obvious bug.  :)

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

10 years agoFix an logic error in the clang driver preventing crtfastmath.o from linking when...
Benjamin Kramer [Tue, 25 Mar 2014 18:02:07 +0000 (18:02 +0000)]
Fix an logic error in the clang driver preventing crtfastmath.o from linking when -Ofast is used without -ffast-math

In gcc using -Ofast forces linking of crtfastmath.o.
In the current clang crtfastmath.o is only linked when -ffast-math/-funsafe-math-optimizations passed. It can lead to performance issues, when using only -Ofast without explicit -ffast-math (I faced with it).
My patch fixes inconsistency with gcc behaviour and also introduces few tests on it.

Patch by Zinovy Nis!

Differential Revision: http://llvm-reviews.chandlerc.com/D3114

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

10 years agoclang-cl: make /Gy imply -fdata-sections in addition to -ffunction-sections
Hans Wennborg [Tue, 25 Mar 2014 17:50:25 +0000 (17:50 +0000)]
clang-cl: make /Gy imply -fdata-sections in addition to -ffunction-sections

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

10 years ago[analyzer] Don't track retain counts of objects directly accessed through ivars.
Jordan Rose [Tue, 25 Mar 2014 17:10:58 +0000 (17:10 +0000)]
[analyzer] Don't track retain counts of objects directly accessed through ivars.

A refinement of r198953 to handle cases where an object is accessed both through
a property getter and through direct ivar access. An object accessed through a
property should always be treated as +0, i.e. not owned by the caller. However,
an object accessed through an ivar may be at +0 or at +1, depending on whether
the ivar is a strong reference. Outside of ARC, we don't have that information,
so we just don't track objects accessed through ivars.

With this change, accessing an ivar directly will deliberately override the +0
provided by a getter, but only if the +0 hasn't participated in other retain
counting yet. That isn't perfect, but it's already unusual for people to be
mixing property access with direct ivar access. (The primary use case for this
is in setters, init methods, and -dealloc.)

Thanks to Ted for spotting a few mistakes in private review.

<rdar://problem/16333368>

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

10 years agoclang-cl: Forward /Gy or /Gy- when falling back to cl.exe
Hans Wennborg [Tue, 25 Mar 2014 14:48:54 +0000 (14:48 +0000)]
clang-cl: Forward /Gy or /Gy- when falling back to cl.exe

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

10 years agoFixes a bug in DynTypedNode.
Manuel Klimek [Tue, 25 Mar 2014 14:39:26 +0000 (14:39 +0000)]
Fixes a bug in DynTypedNode.

Two DynTypedNodes can be equal if they do not have the same node type,
because DynTypedNodes for the same underlying object might have been
created from different types (for example, Decl vs VarDecl).

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

10 years agoclang-format: Fix incorrect &/* detection.
Daniel Jasper [Tue, 25 Mar 2014 10:52:45 +0000 (10:52 +0000)]
clang-format: Fix incorrect &/* detection.

Before:
  STATIC_ASSERT((a &b) == 0);

After:
  STATIC_ASSERT((a & b) == 0);

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

10 years agoRemove redundant and misleading check. This could also lead to painful cyclic
Richard Smith [Tue, 25 Mar 2014 01:22:22 +0000 (01:22 +0000)]
Remove redundant and misleading check. This could also lead to painful cyclic
deserialization.

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

10 years agoSave out a correct lookup table if a lookup table entry is stale (it contains
Richard Smith [Tue, 25 Mar 2014 01:14:22 +0000 (01:14 +0000)]
Save out a correct lookup table if a lookup table entry is stale (it contains
an out-of-date external decls list). This happens if we declare some names,
force the lookup table for the decl context to be built, import a module that
adds more decls for the name, then write out our module without looking up the
name.

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

10 years agoIf a DeclContext's lookups need to be reconciled, and we're given external declaratio...
Richard Smith [Tue, 25 Mar 2014 00:34:21 +0000 (00:34 +0000)]
If a DeclContext's lookups need to be reconciled, and we're given external declarations for a name, reconcile first. Otherwise, when we come to reconcile, we'll ask for external declarations for that name again. No functionality change intended.

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

10 years agoSimplify: don't try to complete the list of decls twice when iterating over the
Richard Smith [Tue, 25 Mar 2014 00:27:18 +0000 (00:27 +0000)]
Simplify: don't try to complete the list of decls twice when iterating over the
lookups for a DeclContext.

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

10 years agoFix a bug where an explicit instantiation declaration of a class template
Richard Smith [Mon, 24 Mar 2014 23:54:09 +0000 (23:54 +0000)]
Fix a bug where an explicit instantiation declaration of a class template
specialization would make us think it might have a key function.

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

10 years agoProper handling of static local variables with address space qualifiers.
Eli Bendersky [Mon, 24 Mar 2014 22:05:38 +0000 (22:05 +0000)]
Proper handling of static local variables with address space qualifiers.

Similar to the implementation for globals in r157167.

Patch by Jingyue Wu.

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

10 years agoMS ABI: Eliminate Duplicate Strings
David Majnemer [Mon, 24 Mar 2014 21:43:36 +0000 (21:43 +0000)]
MS ABI: Eliminate Duplicate Strings

COFF doesn't have mergeable sections so LLVM/clang's normal tactics for
string deduplication will not have any effect.

To remedy this we place each string inside it's own section and mark
the section as IMAGE_COMDAT_SELECT_ANY.  However, we can only do this if the
string has an external name that we can generate from it's contents.

To be compatible with MSVC, we must use their scheme.  Otherwise identical
strings in translation units from clang may not be deduplicated with
translation units in MSVC.

This fixes PR18248.

N.B. We will not attempt to do anything with a string literal which is not of
type 'char' or 'wchar_t' because their compiler does not support unicode
string literals as of this date.  Further, we avoid doing this if
either -fwritable-strings or -fsanitize=address are present.

This reverts commit r204596.

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