[llvm-bugs] [Bug 35471] copy relocation symbols don't show up in --Map output

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35471

George Rimar  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 CC||gri...@accesssoftek.com
 Status|NEW |RESOLVED

--- Comment #1 from George Rimar  ---
r319879, r319769

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35542] New: [OpenMP] reduction on array section produces incorrect result after r316362

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35542

Bug ID: 35542
   Summary: [OpenMP] reduction on array section produces incorrect
result after r316362
   Product: new-bugs
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: daniil.si...@intel.com
CC: llvm-bugs@lists.llvm.org

test.c:
==

int printf(const char *, ...);

int main() {
int total[3] = { 0 };
int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
#pragma omp parallel for reduction(+:total[1:2])
for (int i = 0; i < 10; i++) {
total[1 + i % 2] += a[i];
}

printf("%d %d %d\n", total[0], total[1], total[2]);
}

===

Before:

$ clang -v
clang version 6.0.0 (trunk 316361)
Target: x86_64-unknown-linux-gnu
Thread model: posix
...
$ clang -O0 -fopenmp test.c
$ ./a.out
0 25 30

-

After:

$ clang -v
clang version 6.0.0 (trunk 316362)
Target: x86_64-unknown-linux-gnu
Thread model: posix
...
$ clang -O0 -fopenmp test.c
$ ./a.out
0 30 0




r316362 | hahnfeld | 2017-10-23 21:01:35 +0200 (Mon, 23 Oct 2017) | 28 lines

[OpenMP] Avoid VLAs for some reductions on array sections

In some cases the compiler can deduce the length of an array section
as constants. With this information, VLAs can be avoided in place of
a constant sized array or even a scalar value if the length is 1.
Example:
int a[4], b[2];
pragma omp parallel reduction(+: a[1:2], b[1:1])
{ }

For chained array sections, this optimization is restricted to cases
where all array sections except the last have a constant length 1.
This trivially guarantees that there are no holes in the memory region
that needs to be privatized.
Example:
int c[3][4];
pragma omp parallel reduction(+: c[1:1][1:2])
{ }

This relands commit r316229 that I reverted in r316235 because it
failed on some bots. During investigation I found that this was because
Clang and GCC evaluate the two arguments to emplace_back() in
ReductionCodeGen::emitSharedLValue() in a different order, hence
leading to a different order of generated instructions in the final
LLVM IR. Fix this by passing in the arguments from temporary variables
that are evaluated in a defined order.

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


-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35543] New: Assertion `Ty && "Trying to add a type that doesn't exist?"' failed on Windows self host

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35543

Bug ID: 35543
   Summary: Assertion `Ty && "Trying to add a type that doesn't
exist?"' failed on Windows self host
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: russell_gal...@sn.scee.net
CC: llvm-bugs@lists.llvm.org

At r319883. Found building a Windows self host compiler with debug. Seen on
DeltaAlgorithm.cpp and other files.

Example reduced from DeltaAlgorithm.cpp

$ cat test.cpp
class A {
  typedef void _Nodeptr;
};
class B {
  A FailedTestsCache;
  bool m_fn1();
};
bool B::m_fn1() {}

$ clang++ -cc1 -emit-obj -gcodeview -debug-info-kind=limited -dwarf-version=4
-x c++ test.cpp
test.cpp:8:18: warning: control reaches end of non-void function
bool B::m_fn1() {}
 ^
clang++: /home/gbgallor/git/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp:764: void
llvm::DwarfUnit::addType(llvm::DIE&, const llvm::DIType*,
llvm::dwarf::Attribute): Assertion `Ty && "Trying to add a type that doesn't
exist?"' failed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35544] New: Wasm: add new weak global symbol "__stack_top"

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35544

Bug ID: 35544
   Summary: Wasm: add new weak global symbol "__stack_top"
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: All Bugs
  Assignee: unassignedb...@nondot.org
  Reporter: n...@realvnc.com
CC: llvm-bugs@lists.llvm.org

Could we add a new symbol to those provided by LLD? It should be a weak global
integer called "__stack_top" and point to the end of the stack region, as
calculated in Writer::layoutMemory.

This would be useful in Musl. Currently, when malloc needs to provide fresh
pages of memory to the Wasm module, all it knows initially is the size of the
allocated region from "__builtin_wasm_current_memory". However, the Wasm page
size is large (64KiB) so potentially 64KiB of memory at the end of the current
page is unused.

It would nice if malloc could start allocating its data right from the top of
the stack, instead of wasting space by beginning from the next Wasm page.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 3368 in oss-fuzz: llvm: ASSERT: BT->isInteger()

2017-12-06 Thread sheriff… via monorail via llvm-bugs

Updates:
Labels: Deadline-Approaching

Comment #4 on issue 3368 by sheriff...@chromium.org: llvm: ASSERT:  
BT->isInteger()

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3368#c4

This bug is approaching its deadline for being fixed, and will be  
automatically derestricted within 7 days. If a fix is planned within 2  
weeks after the deadline has passed, a grace extension can be granted.


- Your friendly Sheriffbot

--
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.
___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 3370 in oss-fuzz: llvm: ASSERT: getClient() && "DiagnosticClient not set!"

2017-12-06 Thread sheriff… via monorail via llvm-bugs

Updates:
Labels: Deadline-Approaching

Comment #4 on issue 3370 by sheriff...@chromium.org: llvm: ASSERT:  
getClient() && "DiagnosticClient not set!"

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3370#c4

This bug is approaching its deadline for being fixed, and will be  
automatically derestricted within 7 days. If a fix is planned within 2  
weeks after the deadline has passed, a grace extension can be granted.


- Your friendly Sheriffbot

--
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.
___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] Issue 3369 in oss-fuzz: llvm: Out-of-memory in llvm_clang-format-fuzzer

2017-12-06 Thread sheriff… via monorail via llvm-bugs

Updates:
Labels: Deadline-Approaching

Comment #3 on issue 3369 by sheriff...@chromium.org: llvm: Out-of-memory in  
llvm_clang-format-fuzzer

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=3369#c3

This bug is approaching its deadline for being fixed, and will be  
automatically derestricted within 7 days. If a fix is planned within 2  
weeks after the deadline has passed, a grace extension can be granted.


- Your friendly Sheriffbot

--
You received this message because:
  1. You were specifically CC'd on the issue

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Reply to this email to add a comment.
___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35517] Delete called in virtual destructor

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35517

Konstantin Morshnev  changed:

   What|Removed |Added

 Resolution|INVALID |FIXED

--- Comment #3 from Konstantin Morshnev  ---
> has a good description of deleting destructors.

The description is clear and we know it. But it is about dynamic objects
(MyStruct *ss=new MyStruct), and we have a stack object (MyStruct ss).

And if you'll and some printfs (like https://godbolt.org/g/fW4QZk) you'll see,
that delete is not called. It looks like there are two destructor versions are
generated - one with delete call and one without. But if the one with delete is
not referenced, why it is not optimized out?

> FWIW, your testcase only compiles in GCC 6.1 because they changed their 
> default standard mode to C++14

Thx for this note.

P.S. As a workaround we are temporary disabling virtual destructors to check
that build-in delete is not used in our code, but it's not very convenient.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35546] New: [X86] Warn if a scheduling instregex fails to match any instruction

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35546

Bug ID: 35546
   Summary: [X86] Warn if a scheduling instregex fails to match
any instruction
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: andrea.dibia...@gmail.com,
andrew.v.tische...@gmail.com, gadi.ha...@intel.com,
llvm-bugs@lists.llvm.org, spatel+l...@rotateright.com
Blocks: 32325

Working on the scheduler models recently I've noticed several cases where typos
in instregex entries have meant it failed to match any instruction.

It would be very useful if tablegen reported a warning/error if the instregex
fails to match any instruction.


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=32325
[Bug 32325] [META][X86] Improve implementation and use of X86 scheduler models
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35547] New: [ThinLTO] multi-threaded use after free when handling error

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35547

Bug ID: 35547
   Summary: [ThinLTO] multi-threaded use after free when handling
error
   Product: new-bugs
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: russell_gal...@sn.scee.net
CC: llvm-bugs@lists.llvm.org

While investigating PR35472 we observed some crashes while handling that error.

Building clang and llvm-lto with ASan (r319883) shows that one thread is trying
to access command line options after they have been freed. Note that we do not
see the use-after-free with -threads=1.
$ cat a.cpp
struct Charlie {
__attribute__((__always_inline__)) ~Charlie() { Golf = 0; }
int Golf;
};

struct Delta {
Charlie Foxtrot;
};

struct Echo {
Charlie Foxtrot;
__attribute__((nodebug)) ~Echo() = default;
};

extern void Bravo();

void Bravo() {
Delta Hotel;
Echo India;
}
$ cat b.cpp
extern void Bravo();
extern void Alpha();
void Alpha() { Bravo(); }
$ clang++ -c a.cpp b.cpp --std=c++11 -O0 -g -flto=thin
$ llvm-lto -thinlto-action=run a.o b.o
ThinLTO: b.o: error: Invalid function metadata: outgoing forward refs
(Producer: 'LLVM6.0.0svn' Reader: 'LLVM 6.0.0svn')
LLVM ERROR: importFunctions failed
=
==10367==ERROR: AddressSanitizer: heap-use-after-free on address 0x62404100
at pc 0x0060388d bp 0x7ff7c62fd050 sp 0x7ff7c62fc800
READ of size 32 at 0x62404100 thread T1
#0 0x60388c in __asan_memcpy
.../llvm/projects/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc:23
#1 0x234da66 in llvm::cl::parser::OptionInfo::OptionInfo(llvm::cl::parser::OptionInfo&&) .../llvm/include/llvm/Support/CommandLine.h:740:9
#2 0x234d8ad in llvm::cl::parser::OptionInfo*
std::__uninitialized_copy::__uninit_copy::OptionInfo*>, llvm::cl::parser::OptionInfo*>(std::move_iterator::OptionInfo*>, std::move_iterator::OptionInfo*>, llvm::cl::parser::OptionInfo*)
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/bits/stl_uninitialized.h:75:3
#3 0x234d481 in
llvm::SmallVectorTemplateBase::OptionInfo, false>::grow(unsigned long)
.../llvm/include/llvm/ADT/SmallVector.h:246:3
#4 0x234d144 in
llvm::SmallVectorTemplateBase::OptionInfo, false>::push_back(llvm::cl::parser::OptionInfo const&) .../llvm/include/llvm/ADT/SmallVector.h:214:13
#5 0x234ce8d in void llvm::cl::parser::addLiteralOption(llvm::StringRef,
llvm::PassInfo const* const&, llvm::StringRef)
.../llvm/include/llvm/Support/CommandLine.h:789:12
#6 0x234c61b in llvm::PassNameParser::passRegistered(llvm::PassInfo const*)
.../llvm/include/llvm/IR/LegacyPassNameParser.h:76:5
#7 0x236b874 in llvm::PassRegistry::registerPass(llvm::PassInfo const&,
bool) .../llvm/lib/IR/PassRegistry.cpp:68:15
#8 0x379b512 in
initializeForceFunctionAttrsLegacyPassPassOnce(llvm::PassRegistry&)
.../llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:118:1
#9 0x7ff7ca461a98 in __pthread_once_slow
(/lib/x86_64-linux-gnu/libpthread.so.0+0xea98)
#10 0x6d3b50 in void std::call_once >(std::once_flag&, void*
(&)(llvm::PassRegistry&), std::reference_wrapper&&)
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/mutex:738:17
#11 0x379b452 in
llvm::initializeForceFunctionAttrsLegacyPassPass(llvm::PassRegistry&)
.../llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:118:1
#12 0x379b53a in llvm::createForceFunctionAttrsLegacyPass()
.../llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp:122:14
#13 0x388d9e8 in
llvm::PassManagerBuilder::populateModulePassManager(llvm::legacy::PassManagerBase&)
.../llvm/lib/Transforms/IPO/PassManagerBuilder.cpp:401:11
#14 0x3890826 in
llvm::PassManagerBuilder::populateThinLTOPassManager(llvm::legacy::PassManagerBase&)
.../llvm/lib/Transforms/IPO/PassManagerBuilder.cpp:887:3
#15 0x244586b in (anonymous namespace)::optimizeModule(llvm::Module&,
llvm::TargetMachine&, unsigned int, bool)
.../llvm/lib/LTO/ThinLTOCodeGenerator.cpp:237:7
#16 0x2452b7f in (anonymous namespace)::ProcessThinLTOModule(llvm::Module&,
llvm::ModuleSummaryIndex&, llvm::StringMap&, llvm::TargetMachine&,
llvm::StringMap,
std::allocator > >,
llvm::MallocAllocator> const&, std::unordered_set, std::equal_to, std::allocator > const&, llvm::DenseSet
> const&, llvm::DenseMap, llvm::detail::DenseMapPair > const&, llvm::ThinLTOCodeGenerator::CachingOptions
const&, bool, llvm::StringRef, bool, unsigned int, unsigned int)
.../llvm/lib/LTO/ThinLTOCodeGenerator.cpp:468:3
#17 0x2450e2f in llvm::ThinLTOCodeGenerator::run()::$_5::operator()(int)
const .../llvm/lib/LTO/ThinLTOCodeGenerator.cpp:1011:29
#18 0x24504bf in void std::_Bind::__call(std::tuple<>&&, std::_Index_tuple<0ul>)
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/functional:107

[llvm-bugs] [Bug 35548] New: [X86] Warn if a scheduling instregex doesn't alter the default schedule

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35548

Bug ID: 35548
   Summary: [X86] Warn if a scheduling instregex doesn't alter the
default schedule
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: andrea.dibia...@gmail.com,
andrew.v.tische...@gmail.com, gadi.ha...@intel.com,
llvm-bugs@lists.llvm.org, spatel+l...@rotateright.com
Blocks: 32325

Scheduler model instregex entries only need to be added if they alter the
behaviour of an instruction's default scheduling class/itinerary.

If the instregex is effectively useless, then tablegen should at least emit a
debug warning reporting that.


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=32325
[Bug 32325] [META][X86] Improve implementation and use of X86 scheduler models
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35549] New: [X86] Repeated schedule comments

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35549

Bug ID: 35549
   Summary: [X86] Repeated schedule comments
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Backend: X86
  Assignee: unassignedb...@nondot.org
  Reporter: llvm-...@redking.me.uk
CC: andrea.dibia...@gmail.com,
andrew.v.tische...@gmail.com, craig.top...@gmail.com,
gadi.ha...@intel.com, llvm-bugs@lists.llvm.org,
spatel+l...@rotateright.com
Blocks: 32325

Taken from llvm\test\CodeGen\X86\avx512-schedule.ll

declare void @func_f32(float)
define <16 x float> @broadcast_ss_spill(float %x) {
  %a  = fadd float %x, %x
  call void @func_f32(float %a)
  %b = insertelement <16 x float> undef, float %a, i32 0
  %c = shufflevector <16 x float> %b, <16 x float> undef, <16 x i32>
zeroinitializer
  ret <16 x float> %c
}

Note the repeated scheduling comments for vmovaps and vbroadcastss:

llc -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=skx

.text
.file   "bar.ll"
.globl  broadcast_ss_spill  # -- Begin function broadcast_ss_spill
.p2align4, 0x90
.type   broadcast_ss_spill,@function
broadcast_ss_spill: # @broadcast_ss_spill
.cfi_startproc
# %bb.0:
subq$24, %rsp   #  sched: [1:0.25]
.cfi_def_cfa_offset 32
vaddss  %xmm0, %xmm0, %xmm0 #  sched: [4:0.33]
vmovaps %xmm0, (%rsp)   # 16-byte Spill  sched: [1:1.00]
  #  sched: [1:1.00]
callq   func_f32
vbroadcastss(%rsp), %zmm0   # 16-byte Folded Reload  sched: [8:0.50]
  #  sched: [8:0.50]
addq$24, %rsp   #  sched: [1:0.25]
retq#  sched: [7:1.00]
func_end0:
.size   broadcast_ss_spill, .Lfunc_end0-broadcast_ss_spill
.cfi_endproc
  # -- End function

.section".note.GNU-stack","",@progbits


Referenced Bugs:

https://bugs.llvm.org/show_bug.cgi?id=32325
[Bug 32325] [META][X86] Improve implementation and use of X86 scheduler models
-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35550] New: llvm-pdbutil dump -symbols crash with InlineSiteSym and Inlinee TypeIndex 0x8000002a

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35550

Bug ID: 35550
   Summary: llvm-pdbutil dump -symbols crash with InlineSiteSym
and Inlinee TypeIndex 0x802a
   Product: libraries
   Version: trunk
  Hardware: PC
OS: All
Status: NEW
  Severity: normal
  Priority: P
 Component: DebugInfo
  Assignee: unassignedb...@nondot.org
  Reporter: sc...@gameranger.com
CC: llvm-bugs@lists.llvm.org

Created attachment 19523
  --> https://bugs.llvm.org/attachment.cgi?id=19523&action=edit
gdb_backtrace.txt

Overview: llvm-pdbutil dump -symbols crashes when LazyRandomTypeCollection
tries to allocate an invalid size, due to an InlineSiteSym with an Inlinee
TypeIndex with the high bit set (0x802a).

Steps to Reproduce:

1) PDB file:
http://opensource.spotify.com/cefbuilds/cef_binary_3.2704.1414.g185cd6c_windows32_release_symbols.tar.bz2
(libcef.dll.pdf is roughly 1GB after expanding)

2) llvm-pdbutil dump -symbols libcef.dll.pdb > libcef.dll.pdb.symbols

Actual Results: llvm-pdbutil crashes with a bad-alloc. The
libcef.dll.pdb.symbols file size is 86896 bytes at this point.

The last lines in the output file before the crash are:

Mod 9026 | `obj\base\strings\base.utf_string_conversions.obj`: 
 4 | S_OBJNAME [size = 100] sig=0,
`y:\work\cef3_git\chromium\src\out\release\obj\base\strings\base.utf_string_conversions.obj`
   104 | S_COMPILE3 [size = 60]
 machine = intel pentium 3, Ver = Microsoft (R) Optimizing Compiler,
language = c++
 frontend = 19.0.23918.0, backend = 19.0.23918.0
 flags = ltcg | security checks
   164 | S_BUILDINFO [size = 8] BuildId = `0x142AB8`
   172 | S_GPROC32 [size = 212]
`std::basic_string,std::allocator
>::basic_string,std::allocator
>`
 parent = 0, end = 800, addr = 0001:575872, code size = 52
 type = `0x7D9F (void std::basic_string = {Kind = 0x114d}, Parent = 0xac, End = 0x2a8,
Inlinee = {
static FirstNonSimpleIndex = 0x1000, static SimpleKindMask = 0xff, static
SimpleModeMask = 0x700, Index = {Value = {buffer = {0x2a, 0x0, 0x0, 0x80, 
  AnnotationData = std::vector of length 16, capacity 16 = {0x6, 0x2, 0xc, 0x2,
0x5, 0x6, 0x3, 0xc, 0x7, 0xd, 0x6, 0x2, 0xc, 0xa, 0xa, 0x0}, RecordOffset =
0x0}

(gdb) print /x (uint32_t) IS.Inlinee.Index
$2 = 0x802a

>From a quick look through Microsoft's cvinfo.h, it looks like this is actually
a FuncId / DecoratedItemId:

typedef struct INLINESITESYM {
unsigned short  reclen;// Record length
unsigned short  rectyp;// S_INLINESITE
unsigned long   pParent;   // pointer to the inliner
unsigned long   pEnd;  // pointer to this block's end
CV_ItemId   inlinee;   // CV_ItemId of inlinee
unsigned char   binaryAnnotations[CV_ZEROLEN];   // an array of compressed
binary annotations.
} INLINESITESYM;

// Combined encoding of TI or FuncId, In compiler implementation
// Id prefixed by 1 if it is function ID.

typedef struct DecoratedItemId
{
DecoratedItemId(bool isFuncId, CV_ItemId inputId) {
if (isFuncId) {
decoratedItemId = 0x8000 | inputId;
} else {
decoratedItemId = inputId;
}
}

DecoratedItemId(CV_ItemId encodedId) {
decoratedItemId = encodedId;
}

operator unsigned int() {
return decoratedItemId;
}

bool IsFuncId() 
{
return (decoratedItemId & 0x8000) == 0x8000;
}

CV_ItemId GetItemId() 
{
return decoratedItemId & 0x7fff;
}

private:

unsigned int decoratedItemId;

} DecoratedItemId;

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35517] Delete called in virtual destructor

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35517

Richard Smith  changed:

   What|Removed |Added

 Resolution|FIXED   |INVALID

--- Comment #4 from Richard Smith  ---
The deleting destructor is not optimized out because it's referenced by the
vtable.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35542] [OpenMP] reduction on array section produces incorrect result after r316362

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35542

Jonas Hahnfeld  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Fixed By Commit(s)||r319931
 Resolution|--- |FIXED

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 34492] [meta] 5.0.1 Release Blockers

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=34492
Bug 34492 depends on bug 35537, which changed state.

Bug 35537 Summary: Merge r312509 into the 5.0 branch : NewGVN: Fix PR 34452 by 
passing instruction all the way down when we do aggregat
https://bugs.llvm.org/show_bug.cgi?id=35537

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35537] Merge r312509 into the 5.0 branch : NewGVN: Fix PR 34452 by passing instruction all the way down when we do aggregat

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35537

Tom Stellard  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Fixed By Commit(s)|r312509 |r312509 r319952
 Status|NEW |RESOLVED

--- Comment #7 from Tom Stellard  ---
Merged: r319952

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35552] New: [ThinLTO] Incautious error handling

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35552

Bug ID: 35552
   Summary: [ThinLTO] Incautious error handling
   Product: libraries
   Version: trunk
  Hardware: PC
OS: Windows NT
Status: NEW
  Severity: enhancement
  Priority: P
 Component: Bitcode Reader
  Assignee: unassignedb...@nondot.org
  Reporter: paul_robin...@playstation.sony.com
CC: llvm-bugs@lists.llvm.org

While investigating PR35472, we occasionally got a different error,
"can't create module summary index for buffer: Invalid bitcode signature"
followed by a crash.

ThinLTOCodeGenerator::linkCombinedIndex() nominally returns a
std::unique_ptr, however if readModuleSummaryIndex()
returns an error (e.g., Invalid bitcode signature), linkCombinedIndex() 
can return nullptr.

ThinLTOCodeGenerator::run() has this code:

  // Sequential linking phase
  auto Index = linkCombinedIndex();
  ...
  Index->collectDefinedGVSummariesPerModule(ModuleToDefinedGVSummaries);

That is, there's no null check, and the nullptr causes the inevitable
segfault.  I figured I'd let the ThinLTO experts decide how they want
to handle this.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35553] New: Dummy sections should be NOBITS

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35553

Bug ID: 35553
   Summary: Dummy sections should be NOBITS
   Product: lld
   Version: unspecified
  Hardware: PC
OS: Linux
Status: NEW
  Severity: enhancement
  Priority: P
 Component: ELF
  Assignee: unassignedb...@nondot.org
  Reporter: jakehehrl...@google.com
CC: llvm-bugs@lists.llvm.org

When given a linker script that creates a section with no input sections and no
byte commands the linker should make the output section have type NOBITS to
reduce the size of the final executable (assuming that the NOBITS sections
occur at the end of the segment). Right now LLD produces PROGBITS sections in
this case.

I thought it would be simple to simply make the default output section type be
NOBITS and then change the type to PROGBITS during finalization if a byte
command was seen but this leads to more complicated issues in
test/ELF/linkerscript/extend-pt-load.s and my naive attempt to fix that caused
other problems in test/ELF/linkerscript/orphan-discard.s. Looking in to this
the issue seems more complicated than I gave it credit for.

Steps to reproduce:

test.ll```
SECTIONS {
  .foo : {
. += 0x1000;
  }
}
```

test.s```
.global _start
.type _start, STT_FUNC

_start:
  ret
```

Then run the following
```
lld --script=test.ll test.o -o test
llvm-readobj -sections test
```

And the .foo section will look like this:
```
  Section {
Index: 1
Name: .foo (1)
Type: SHT_PROGBITS (0x1)
Flags [ (0x2)
  SHF_ALLOC (0x2)
]
Address: 0x0
Offset: 0x1000
Size: 4096
Link: 0
Info: 0
AddressAlignment: 1
EntrySize: 0
  }

```

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35554] New: Java: clang-format doesn't honor BreakBeforeBraces with @interface declarations

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35554

Bug ID: 35554
   Summary: Java: clang-format doesn't honor BreakBeforeBraces
with @interface declarations
   Product: clang
   Version: unspecified
  Hardware: Macintosh
OS: MacOS X
Status: NEW
  Severity: normal
  Priority: P
 Component: Formatter
  Assignee: unassignedclangb...@nondot.org
  Reporter: chris.a.willi...@gmail.com
CC: djas...@google.com, kli...@google.com,
llvm-bugs@lists.llvm.org

Related to #21456.

If defining annotations in Java, we use the @interface keyword designation.
Ideally it would treated similarly to class/interface declarations and would
honor the BreakBeforeBraces setting. However it always uses an Attach style
brace

@Documented
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.FIELD)
public static @interface property
{
}

with BreakBeforeBraces: Allman still produces

@Documented
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.FIELD)
public static @interface property {
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 18505] Missing support for APCS frame layout

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=18505

Evgenii Stepanov  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|NEW |RESOLVED

--- Comment #12 from Evgenii Stepanov  ---
Anyway, there is nothing left to be done on the LLVM side, so I'm closing this
bug.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35490] llvm-cov: Wrong coverage with multiple binaries and shared code

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35490

Vedant Kumar  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|NEW |RESOLVED

--- Comment #4 from Vedant Kumar  ---
The root cause here is the same as the one in PR35459. The coverage reader
thinks there is just one canonical record for w(), because it incorrectly
assumes the ODR holds across multiple binaries. It cannot treat multiple
records for w() additively.

The two records for w() (one from 'x' and one from 'y') have the same hash,
which explains why you only see the hash mismatch warning when one of the
definitions are changed.

*** This bug has been marked as a duplicate of bug 35459 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35495] [LLVM-COV] statement inside a label after a non-executed statement is wrongly marked as non executed in llvm-cov

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35495

Vedant Kumar  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from Vedant Kumar  ---
Thanks for the report! Fixed in r319990.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35493] [LLVM-COV] statements after two labels and '||' operator are wrongly marked as not executed in llvm-cov

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35493

Vedant Kumar  changed:

   What|Removed |Added

 Resolution|--- |DUPLICATE
 Status|NEW |RESOLVED

--- Comment #2 from Vedant Kumar  ---
This was just fixed (see llvm.org/PR35495).

*** This bug has been marked as a duplicate of bug 35495 ***

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35164] WASM: Assertion taking address of struct (unknown size)

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35164

Dan Gohman  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
 CC||dan433...@gmail.com

--- Comment #2 from Dan Gohman  ---
Looks good! Committed in r319991.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35205] Invalid WebAssembly module generation when using alloca

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35205

Dan Gohman  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Dan Gohman  ---
As of r319810, we now emit mutable imports.

So the current state is that .o files are still not valid according to the
current wasm spec, but they anticipate a feature expected to be added. In
particular, wabt has recently enabled support for mutable imports as part of
--enable-threads.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 35555] New: SEGV in FormatASTNodeDiagnosticArgument()

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=3

Bug ID: 3
   Summary: SEGV in FormatASTNodeDiagnosticArgument()
   Product: new-bugs
   Version: 5.0
  Hardware: PC
OS: FreeBSD
Status: NEW
  Severity: enhancement
  Priority: P
 Component: new bugs
  Assignee: unassignedb...@nondot.org
  Reporter: ema...@freebsd.org
CC: llvm-bugs@lists.llvm.org

Created attachment 19524
  --> https://bugs.llvm.org/attachment.cgi?id=19524&action=edit
reproducer

Raw reproducer attached, will try reducing

(lldb) bt
* thread #1, name = 'c++', stop reason = signal SIGSEGV
  * frame #0: 0x0155c84a c++`::FormatASTNodeDiagnosticArgument() at
ASTDiagnostic.cpp:396
frame #1: 0x02516403 c++`::FormatDiagnostic() [inlined]
ConvertArgToString at Diagnostic.h:701
frame #2: 0x025163a8 c++`::FormatDiagnostic() at Diagnostic.cpp:895
frame #3: 0x024e49c2 c++`::HandleDiagnostic() at
TextDiagnosticPrinter.cpp:118
frame #4: 0x01fac1bc c++`::ProcessDiag() [inlined] EmitDiag at
DiagnosticIDs.cpp:694
frame #5: 0x01fac19b c++`::ProcessDiag() at DiagnosticIDs.cpp:686
frame #6: 0x02515ed0 c++`::EmitCurrentDiagnostic() [inlined]
ProcessDiag at Diagnostic.h:879
frame #7: 0x02515ec5 c++`::EmitCurrentDiagnostic() at
Diagnostic.cpp:418
frame #8: 0x01633b70 c++`::EmitCurrentDiagnostic() at Sema.cpp:1142
frame #9: 0x01add31e c++`::BuildLambdaExpr() at SemaLambda.cpp:1530
frame #10: 0x01adcf87 c++`::ActOnLambdaExpr() at
SemaLambda.cpp:1424
frame #11: 0x01c536ba c++`::ParseLambdaExpressionAfterIntroducer()
at ParseExprCXX.cpp:1300
frame #12: 0x01c51f36 c++`::ParseLambdaExpression() at
ParseExprCXX.cpp:685
frame #13: 0x01c60eaa c++`::ParseCastExpression() at
ParseExpr.cpp:1411
frame #14: 0x01c59f35 c++`::ParseAssignmentExpression() [inlined]
ParseCastExpression at ParseExpr.cpp:521
frame #15: 0x01c59f23 c++`::ParseAssignmentExpression() at
ParseExpr.cpp:168
frame #16: 0x01c3b34a
c++`::ParseDeclarationAfterDeclaratorAndAttributes() [inlined] ParseInitializer
at Parser.h:1679
frame #17: 0x01c3b336
c++`::ParseDeclarationAfterDeclaratorAndAttributes() at ParseDecl.cpp:2216
frame #18: 0x01c397ca c++`::ParseDeclGroup() at ParseDecl.cpp:2006
frame #19: 0x01c35663 c++`::ParseSimpleDeclaration() at
ParseDecl.cpp:1738
frame #20: 0x01c35247 c++`::ParseDeclaration() at Parser.h:0
frame #21: 0x01c7e6ef
c++`::ParseStatementOrDeclarationAfterAttributes() at ParseStmt.cpp:214
frame #22: 0x01c7e34c c++`::ParseStatementOrDeclaration() at
ParseStmt.cpp:110
frame #23: 0x01c85239 c++`::ParseCompoundStatementBody() at
ParseStmt.cpp:1001
frame #24: 0x01c85aff c++`::ParseFunctionStatementBody() at
ParseStmt.cpp:1967
frame #25: 0x01be50a4 c++`::ParseFunctionDefinition() at
Parser.cpp:1212
frame #26: 0x01c396d4 c++`::ParseDeclGroup() at ParseDecl.cpp:1953
frame #27: 0x01be4521 c++`::ParseDeclOrFunctionDefInternal() at
Parser.cpp:979
frame #28: 0x01be3e7f c++`::ParseDeclarationOrFunctionDefinition()
at Parser.cpp:995
frame #29: 0x01be2eca c++`::ParseExternalDeclaration() at
Parser.cpp:845
frame #30: 0x01c196f7 c++`::ParseInnerNamespace() at
ParseDeclCXX.cpp:220
frame #31: 0x01c18fa5 c++`::ParseNamespace() at
ParseDeclCXX.cpp:195
frame #32: 0x01c35112 c++`::ParseDeclaration() at ParseDecl.cpp:0
frame #33: 0x01be248d c++`::ParseExternalDeclaration() [inlined]
SourceLocation at SourceLocation.h:98
frame #34: 0x01be2472 c++`::ParseExternalDeclaration() at
Parser.cpp:777
frame #35: 0x01be1c15 c++`::ParseTopLevelDecl() at Parser.cpp:613
frame #36: 0x01bdd9d5 c++`::ParseAST() at ParseAST.cpp:147
frame #37: 0x0162258c c++`::Execute() at FrontendAction.cpp:902
frame #38: 0x0236be01 c++`::ExecuteAction() at
CompilerInstance.cpp:980
frame #39: 0x0123673e c++`::ExecuteCompilerInvocation() at
ExecuteCompilerInvocation.cpp:251
frame #40: 0x0122b763 c++`::cc1_main() at cc1_main.cpp:221
frame #41: 0x01233d68 c++`main [inlined] ExecuteCC1Tool at
driver.cpp:306
frame #42: 0x01233d42 c++`main at driver.cpp:387
frame #43: 0x0122b17f c++`_start(ap=,
cleanup=) at crt1.c:72
(lldb) frame sel 0
frame #0: 0x0155c84a c++`::FormatASTNodeDiagnosticArgument() at
ASTDiagnostic.cpp:396
   393  Qualified = false;
   394}
   395const NamedDecl *ND = reinterpret_cast(Val);
-> 396ND->getNameForDiagnostic(OS, Context.getPrintingPolicy(),
Qualified);
   397break;
   398  }
   399  case DiagnosticsEngine::ak_nestednamespec: {

--

[llvm-bugs] [Bug 35556] New: [LLVM-COV] dead label and false conditional lead to incorrect coverage in llvm-cov

2017-12-06 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=35556

Bug ID: 35556
   Summary: [LLVM-COV] dead label and false conditional lead to
incorrect coverage in llvm-cov
   Product: clang
   Version: trunk
  Hardware: PC
OS: Linux
Status: NEW
  Severity: normal
  Priority: P
 Component: -New Bugs
  Assignee: unassignedclangb...@nondot.org
  Reporter: yangyib...@nju.edu.cn
CC: llvm-bugs@lists.llvm.org

$ clang -v
clang version 6.0.0-svn319926-1~exp1 (trunk)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/6.3.0
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.3.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.2.0
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/7.2.0
Candidate multilib: .;@m64
Selected multilib: .;@m64

$ cat small.c
int main()
{
int i = 0;
if (1)
{
goto lbl;
lbl_dead:
i++;
lbl:
if (0) 
;
i++;
}
}

$ clang -w -O0 -g -fcoverage-mapping -fprofile-instr-generate=small.profraw
small.c; ./a.out; llvm-profdata merge small.profraw -o small.profdata; llvm-cov
show a.out -instr-profile=small.profdata small.c > small.gcov; cat small.gcov
1|   |int main()
2|  1|{
3|  1|int i = 0;
4|  1|if (1)
5|  1|{
6|  1|goto lbl;
7|  0|lbl_dead:
8|  0|i++;
9|  1|lbl:
   10|  1|if (0) 
   11|  0|;
   12|  0|i++;
   13|  0|}
   14|  1|}


As we can find that, Line #12 was wrongly marked as not executed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs