summaryrefslogtreecommitdiffstats
path: root/lld
diff options
context:
space:
mode:
Diffstat (limited to 'lld')
-rw-r--r--lld/docs/design.rst3
-rw-r--r--lld/include/lld/Core/Reference.h2
-rw-r--r--lld/lib/Core/Resolver.cpp6
-rw-r--r--lld/lib/ReaderWriter/Reader.cpp1
-rw-r--r--lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp70
-rw-r--r--lld/test/core/gnulinkonce-rearrange-resolve.objtxt36
-rw-r--r--lld/test/core/gnulinkonce-remaining-undef.objtxt28
-rw-r--r--lld/test/core/gnulinkonce-resolve.objtxt40
-rw-r--r--lld/test/core/gnulinkonce-simple.objtxt30
-rw-r--r--lld/test/core/sectiongroup-gnulinkonce-error.objtxt24
-rw-r--r--lld/test/core/sectiongroup-rearrange-resolve.objtxt36
-rw-r--r--lld/test/core/sectiongroup-remaining-undef.objtxt28
-rw-r--r--lld/test/core/sectiongroup-resolve.objtxt40
-rw-r--r--lld/test/core/sectiongroup-simple.objtxt30
14 files changed, 23 insertions, 351 deletions
diff --git a/lld/docs/design.rst b/lld/docs/design.rst
index 1e640a92728..06d356527f5 100644
--- a/lld/docs/design.rst
+++ b/lld/docs/design.rst
@@ -170,8 +170,7 @@ outside the '.group'.
In lld the the '.group' sections with COMDAT are identified by contentType(
typeGroupComdat). The '.group' members are identified by using
-**kindGroupChild** references. The group child members have a reference to the
-group section by using **kindGroupParent** references.
+**kindGroupChild** references.
The point to be noted here is the 'group child' members would need to be emitted
in the output file **iff** the group was selected by the resolver.
diff --git a/lld/include/lld/Core/Reference.h b/lld/include/lld/Core/Reference.h
index 528319711a2..70aba256a09 100644
--- a/lld/include/lld/Core/Reference.h
+++ b/lld/include/lld/Core/Reference.h
@@ -89,8 +89,8 @@ public:
// kindLayoutBefore is currently used only by PECOFF port, and will
// be removed soon. To enforce layout, use kindLayoutAfter instead.
kindLayoutBefore = 3,
+ // kindGroupChild is treated as a bidirected edge too.
kindGroupChild = 4,
- kindGroupParent = 5
};
// A value to be added to the value of a target
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp
index b73d80adc70..ba4b61bb886 100644
--- a/lld/lib/Core/Resolver.cpp
+++ b/lld/lib/Core/Resolver.cpp
@@ -321,8 +321,10 @@ void Resolver::markLive(const Atom *atom) {
}
static bool isBackref(const Reference *ref) {
- return ref->kindNamespace() == lld::Reference::KindNamespace::all &&
- ref->kindValue() == lld::Reference::kindLayoutBefore;
+ if (ref->kindNamespace() != lld::Reference::KindNamespace::all)
+ return false;
+ return (ref->kindValue() == lld::Reference::kindLayoutBefore ||
+ ref->kindValue() == lld::Reference::kindGroupChild);
}
// remove all atoms not actually used
diff --git a/lld/lib/ReaderWriter/Reader.cpp b/lld/lib/ReaderWriter/Reader.cpp
index 34887c2b03d..18fe9c9b79d 100644
--- a/lld/lib/ReaderWriter/Reader.cpp
+++ b/lld/lib/ReaderWriter/Reader.cpp
@@ -58,7 +58,6 @@ static const Registry::KindStrings kindStrings[] = {
{Reference::kindLayoutAfter, "layout-after"},
{Reference::kindLayoutBefore, "layout-before"},
{Reference::kindGroupChild, "group-child"},
- {Reference::kindGroupParent, "group-parent"},
LLD_KIND_STRING_END};
Registry::Registry() {
diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
index 90ec430b84b..208a092fb05 100644
--- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
+++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
@@ -183,18 +183,14 @@ public:
const lld::Atom *lookup(StringRef name) const {
NameToAtom::const_iterator pos = _nameMap.find(name);
- if (pos != _nameMap.end()) {
- return pos->second;
- } else if ((pos = _groupChild.find(name)) != _groupChild.end()) {
+ if (pos != _nameMap.end())
return pos->second;
- } else {
- _io.setError(Twine("no such atom name: ") + name);
- return nullptr;
- }
+ _io.setError(Twine("no such atom name: ") + name);
+ return nullptr;
}
/// \brief Lookup a group parent when there is a reference of type
- /// kindGroupParent. If there was no group-parent produce an appropriate
+ /// kindGroupChild. If there was no group-parent produce an appropriate
/// error.
const lld::Atom *lookupGroupParent(StringRef name) const {
NameToAtom::const_iterator pos = _groupMap.find(name);
@@ -204,30 +200,10 @@ public:
return nullptr;
}
- /// \brief Lookup a group child when there is a reference of type
- /// kindGroupChild. If there was no group-child produce an appropriate
- /// error.
- const lld::Atom *lookupGroupChild(StringRef name) const {
- NameToAtom::const_iterator pos = _groupChild.find(name);
- if (pos != _groupChild.end())
- return pos->second;
- _io.setError(Twine("no such group child: ") + name);
- return nullptr;
- }
-
private:
typedef llvm::StringMap<const lld::Atom *> NameToAtom;
void add(StringRef name, const lld::Atom *atom, bool isGroupChild = false) {
- if (isGroupChild) {
- if (_groupChild.count(name)) {
- _io.setError(Twine("duplicate group child: ") + name);
- } else {
- _groupChild[name] = atom;
- }
- return;
- }
-
if (const lld::DefinedAtom *da = dyn_cast<DefinedAtom>(atom)) {
if (da->isGroupParent()) {
if (_groupMap.count(name)) {
@@ -248,7 +224,6 @@ private:
IO &_io;
NameToAtom _nameMap;
NameToAtom _groupMap;
- NameToAtom _groupChild;
};
// Used in NormalizedFile to hold the atoms lists.
@@ -836,15 +811,8 @@ template <> struct MappingTraits<const lld::DefinedAtom *> {
_deadStrip(atom->deadStrip()), _dynamicExport(atom->dynamicExport()),
_permissions(atom->permissions()), _size(atom->size()),
_sectionName(atom->customSectionName()) {
- for (const lld::Reference *r : *atom) {
- // If this is not a group child as yet, lets keep looking
- // at all the references.
- if (!_isGroupChild &&
- r->kindNamespace() == lld::Reference::KindNamespace::all &&
- r->kindValue() == lld::Reference::kindGroupParent)
- _isGroupChild = true;
+ for (const lld::Reference *r : *atom)
_references.push_back(r);
- }
if (!atom->occupiesDiskSpace())
return;
ArrayRef<uint8_t> cont = atom->rawContent();
@@ -892,6 +860,7 @@ template <> struct MappingTraits<const lld::DefinedAtom *> {
DeadStripKind deadStrip() const override { return _deadStrip; }
DynamicExport dynamicExport() const override { return _dynamicExport; }
ContentPermissions permissions() const override { return _permissions; }
+ void setGroupChild(bool val) { _isGroupChild = val; }
bool isGroupChild() const { return _isGroupChild; }
ArrayRef<uint8_t> rawContent() const override {
if (!occupiesDiskSpace())
@@ -987,16 +956,6 @@ template <> struct MappingTraits<const lld::DefinedAtom *> {
DefinedAtom::permissions(
keys->_contentType));
io.mapOptional("references", keys->_references);
- for (const lld::Reference *r : keys->_references) {
- // If this is not a group child as yet, lets keep looking
- // at all the references.
- if (!keys->_isGroupChild &&
- r->kindNamespace() == lld::Reference::KindNamespace::all &&
- r->kindValue() == lld::Reference::kindGroupParent) {
- keys->_isGroupChild = true;
- break;
- }
- }
}
};
@@ -1256,17 +1215,14 @@ inline void MappingTraits<const lld::DefinedAtom *>::NormalizedAtom::bind(
inline void MappingTraits<const lld::Reference *>::NormalizedReference::bind(
const RefNameResolver &resolver) {
- if (_mappedKind.ns == lld::Reference::KindNamespace::all) {
- if (_mappedKind.value == lld::Reference::kindGroupParent) {
- _target = resolver.lookupGroupParent(_targetName);
- return;
- }
- if (_mappedKind.value == lld::Reference::kindGroupChild) {
- _target = resolver.lookupGroupChild(_targetName);
- return;
- }
- }
+ typedef MappingTraits<const lld::DefinedAtom *>::NormalizedAtom NormalizedAtom;
+
_target = resolver.lookup(_targetName);
+
+ if (_mappedKind.ns == lld::Reference::KindNamespace::all &&
+ _mappedKind.value == lld::Reference::kindGroupChild) {
+ ((NormalizedAtom *)_target)->setGroupChild(true);
+ }
}
inline StringRef
diff --git a/lld/test/core/gnulinkonce-rearrange-resolve.objtxt b/lld/test/core/gnulinkonce-rearrange-resolve.objtxt
index dbcc95591a9..2a6386a6935 100644
--- a/lld/test/core/gnulinkonce-rearrange-resolve.objtxt
+++ b/lld/test/core/gnulinkonce-rearrange-resolve.objtxt
@@ -22,27 +22,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
---
defined-atoms:
- name: g1
@@ -60,27 +48,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
...
# CHECK: defined-atoms:
@@ -97,19 +73,7 @@ defined-atoms:
# CHECK: - kind: group-child
# CHECK: target: d1
# CHECK: - name: f1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: f2
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: g1
# CHECK: ref-name: [[CHILD]]
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: d1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
diff --git a/lld/test/core/gnulinkonce-remaining-undef.objtxt b/lld/test/core/gnulinkonce-remaining-undef.objtxt
index ee5f681ac02..fcd28d27e1c 100644
--- a/lld/test/core/gnulinkonce-remaining-undef.objtxt
+++ b/lld/test/core/gnulinkonce-remaining-undef.objtxt
@@ -12,27 +12,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -56,33 +44,18 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f3
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -97,6 +70,7 @@ defined-atoms:
target: g1
- kind: group-child
target: d1
+---
undefined-atoms:
- name: f3
can-be-null: never
diff --git a/lld/test/core/gnulinkonce-resolve.objtxt b/lld/test/core/gnulinkonce-resolve.objtxt
index ff099a5ba9d..f648bce4ac3 100644
--- a/lld/test/core/gnulinkonce-resolve.objtxt
+++ b/lld/test/core/gnulinkonce-resolve.objtxt
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -48,27 +36,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -104,30 +80,14 @@ defined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: ...
diff --git a/lld/test/core/gnulinkonce-simple.objtxt b/lld/test/core/gnulinkonce-simple.objtxt
index 1a96b62669b..0f07645af26 100644
--- a/lld/test/core/gnulinkonce-simple.objtxt
+++ b/lld/test/core/gnulinkonce-simple.objtxt
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
@@ -49,7 +37,7 @@ defined-atoms:
references:
- kind: layout-before
target: f1
-
+---
undefined-atoms:
- name: f1
can-be-null: never
@@ -76,32 +64,16 @@ undefined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: anotherfunction
#CHECK: scope: global
#CHECK: type: data
diff --git a/lld/test/core/sectiongroup-gnulinkonce-error.objtxt b/lld/test/core/sectiongroup-gnulinkonce-error.objtxt
index 7043d3f8108..47598957f8d 100644
--- a/lld/test/core/sectiongroup-gnulinkonce-error.objtxt
+++ b/lld/test/core/sectiongroup-gnulinkonce-error.objtxt
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -48,27 +36,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: gnu-linkonce
diff --git a/lld/test/core/sectiongroup-rearrange-resolve.objtxt b/lld/test/core/sectiongroup-rearrange-resolve.objtxt
index 01d305c1382..7f5d2603775 100644
--- a/lld/test/core/sectiongroup-rearrange-resolve.objtxt
+++ b/lld/test/core/sectiongroup-rearrange-resolve.objtxt
@@ -22,27 +22,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
---
defined-atoms:
- name: g1
@@ -60,27 +48,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
...
# CHECK: defined-atoms:
@@ -97,19 +73,7 @@ defined-atoms:
# CHECK: - kind: group-child
# CHECK: target: d1
# CHECK: - name: f1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: f2
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: g1
# CHECK: ref-name: [[CHILD]]
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
# CHECK: - name: d1
-# CHECK: references:
-# CHECK: - kind: group-parent
-# CHECK: target: [[PARENT]]
diff --git a/lld/test/core/sectiongroup-remaining-undef.objtxt b/lld/test/core/sectiongroup-remaining-undef.objtxt
index faa9b6a8ea1..f1323d0c62a 100644
--- a/lld/test/core/sectiongroup-remaining-undef.objtxt
+++ b/lld/test/core/sectiongroup-remaining-undef.objtxt
@@ -12,27 +12,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -56,33 +44,18 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f3
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -97,6 +70,7 @@ defined-atoms:
target: g1
- kind: group-child
target: d1
+---
undefined-atoms:
- name: f3
can-be-null: never
diff --git a/lld/test/core/sectiongroup-resolve.objtxt b/lld/test/core/sectiongroup-resolve.objtxt
index ab03f64003c..7e75e7caae0 100644
--- a/lld/test/core/sectiongroup-resolve.objtxt
+++ b/lld/test/core/sectiongroup-resolve.objtxt
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -48,27 +36,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -104,30 +80,14 @@ defined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: ...
diff --git a/lld/test/core/sectiongroup-simple.objtxt b/lld/test/core/sectiongroup-simple.objtxt
index d7545093acd..f6258e17a16 100644
--- a/lld/test/core/sectiongroup-simple.objtxt
+++ b/lld/test/core/sectiongroup-simple.objtxt
@@ -10,27 +10,15 @@ defined-atoms:
- name: f1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: f2
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: code
- references:
- - kind: group-parent
- target: g1
- name: d1
scope: global
type: data
- references:
- - kind: group-parent
- target: g1
- name: g1
scope: global
type: group-comdat
@@ -49,7 +37,7 @@ defined-atoms:
references:
- kind: layout-before
target: f1
-
+---
undefined-atoms:
- name: f1
can-be-null: never
@@ -76,32 +64,16 @@ undefined-atoms:
#CHECK: - name: f1
#CHECK: ref-name: [[GCHILDONE]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: f2
#CHECK: ref-name: [[GCHILDTWO]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: d1
#CHECK: ref-name: [[GCHILDTHREE]]
#CHECK: scope: global
#CHECK: type: data
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: g1
#CHECK: ref-name: [[GCHILDFOUR]]
#CHECK: scope: global
-#CHECK: references:
-#CHECK: - kind: group-parent
-#CHECK: offset: 0
-#CHECK: target: [[PARENT]]
#CHECK: - name: anotherfunction
#CHECK: scope: global
#CHECK: type: data
OpenPOWER on IntegriCloud