Go to file
Hans Wennborg 7525edc890 [ms] Fix mangling of string literals used to initialize arrays larger or smaller than the literal
A Chromium developer reported a bug which turned out to be a mangling
collision between these two literals:

  char s[] = "foo";
  char t[32] = "foo";

They may look the same, but for the initialization of t we will (under
some circumstances) use a literal that's extended with zeros, and
both the length and those zeros should be accounted for by the mangling.

This actually makes the mangling code simpler: where it previously had
special logic for null terminators, which are not part of the
StringLiteral, that is now covered by the general algorithm.

(The problem was reported at https://crbug.com/857442)

Differential Revision: https://reviews.llvm.org/D48928

llvm-svn: 336415
2018-07-06 06:54:16 +00:00
clang [ms] Fix mangling of string literals used to initialize arrays larger or smaller than the literal 2018-07-06 06:54:16 +00:00
clang-tools-extra [clangd] Implementation of textDocument/documentSymbol 2018-07-05 19:35:01 +00:00
compiler-rt Make __gcov_flush flush counters for all shared libraries 2018-07-05 15:52:59 +00:00
debuginfo-tests [debuginfo-tests] Always use the system python to invoke llgdb.py. 2018-06-10 19:38:26 +00:00
libclc atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics 2018-06-21 19:27:39 +00:00
libcxx Revert "[libc++] Replace uses of _LIBCPP_ALWAYS_INLINE by _LIBCPP_INLINE_VISIBILITY" 2018-07-05 18:41:50 +00:00
libcxxabi [demangler] Avoid alignment warning 2018-07-05 06:24:29 +00:00
libunwind Introduce a separate preprocessor macro, _LIBUNWIND_USE_DLADDR, for directly controlling a dependency on dladdr(). This will allow us to use libunwind without adding a libdl dependency. 2018-06-29 20:41:50 +00:00
lld [ELF][MIPS] Simplify `checkFlags` routine and inline `rejectMicroMips64`. NFC 2018-07-06 05:50:46 +00:00
lldb Remove a bunch more references to _LIBCPP_INLINE_VISIBILITY 2018-07-06 00:16:21 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [Support] Make support types more easily printable. 2018-07-06 05:45:45 +00:00
openmp Dropped non-supoorted "--no-as-needed" flag from OMPT tests for macOS 2018-07-05 09:14:06 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [ScopInfo] Move foldSizeConstantsToRight() to isl++ 2018-07-05 15:23:28 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.