annotate gcc/testsuite/g++.dg/torture/pr69264.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do compile }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 // { dg-additional-options "-Wno-return-type" }
111
kono
parents:
diff changeset
3 // { dg-additional-options "-mcpu=970 -maltivec" { target powerpc*-*-* } }
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 typedef union {
kono
parents:
diff changeset
6 long int asBits;
kono
parents:
diff changeset
7 } jsval_layout;
kono
parents:
diff changeset
8 static jsval_layout STRING_TO_JSVAL_IMPL() {}
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 typedef __attribute__ ((aligned(sizeof (long int)))) long int jsval;
kono
parents:
diff changeset
11 class Value {
kono
parents:
diff changeset
12 public:
kono
parents:
diff changeset
13 void setString() {
kono
parents:
diff changeset
14 data = STRING_TO_JSVAL_IMPL();
kono
parents:
diff changeset
15 }
kono
parents:
diff changeset
16 jsval_layout data;
kono
parents:
diff changeset
17 } __attribute__ ((aligned(8)));
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 static Value StringValue()
kono
parents:
diff changeset
20 {
kono
parents:
diff changeset
21 Value v;
kono
parents:
diff changeset
22 v.setString();
kono
parents:
diff changeset
23 return v;
kono
parents:
diff changeset
24 }
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 static const jsval & Jsvalify(const Value & v)
kono
parents:
diff changeset
27 {
kono
parents:
diff changeset
28 return (const jsval &)v;
kono
parents:
diff changeset
29 }
kono
parents:
diff changeset
30
kono
parents:
diff changeset
31 static Value *Valueify(jsval *v)
kono
parents:
diff changeset
32 {
kono
parents:
diff changeset
33 return (Value *) v;
kono
parents:
diff changeset
34 }
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 struct JSObject {
kono
parents:
diff changeset
37 void getQNameLocalName();
kono
parents:
diff changeset
38 };
kono
parents:
diff changeset
39 static Value IdToValue(int id)
kono
parents:
diff changeset
40 {
kono
parents:
diff changeset
41 if (id)
kono
parents:
diff changeset
42 return StringValue();
kono
parents:
diff changeset
43 }
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 static jsval IdToJsval(int id)
kono
parents:
diff changeset
46 {
kono
parents:
diff changeset
47 return Jsvalify(IdToValue(id));
kono
parents:
diff changeset
48 }
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 class AutoGCRooter;
kono
parents:
diff changeset
51 struct JSContext {
kono
parents:
diff changeset
52 AutoGCRooter *autoGCRooters;
kono
parents:
diff changeset
53 };
kono
parents:
diff changeset
54 class AutoGCRooter {
kono
parents:
diff changeset
55 public:
kono
parents:
diff changeset
56 AutoGCRooter(JSContext *cx) {}
kono
parents:
diff changeset
57 };
kono
parents:
diff changeset
58 class AutoArrayRooter:AutoGCRooter {
kono
parents:
diff changeset
59 public:
kono
parents:
diff changeset
60 AutoArrayRooter(JSContext *cx, Value *vec):AutoGCRooter(cx)
kono
parents:
diff changeset
61 {
kono
parents:
diff changeset
62 array = vec;
kono
parents:
diff changeset
63 cx->autoGCRooters = this;
kono
parents:
diff changeset
64 }
kono
parents:
diff changeset
65 Value *array;
kono
parents:
diff changeset
66 };
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 static void PutProperty(JSContext *cx, int id, jsval *vp)
kono
parents:
diff changeset
69 {
kono
parents:
diff changeset
70 JSObject *nameobj;
kono
parents:
diff changeset
71 jsval roots[3];
kono
parents:
diff changeset
72 roots[1] = IdToJsval(id);
kono
parents:
diff changeset
73 roots[2] = *vp;
kono
parents:
diff changeset
74 AutoArrayRooter tvr(cx, Valueify(roots));
kono
parents:
diff changeset
75 nameobj->getQNameLocalName();
kono
parents:
diff changeset
76 }
kono
parents:
diff changeset
77
kono
parents:
diff changeset
78 void xml_defineProperty(JSContext *cx, int id, const Value *v)
kono
parents:
diff changeset
79 {
kono
parents:
diff changeset
80 jsval tmp = Jsvalify(*v);
kono
parents:
diff changeset
81 PutProperty(cx, id, &tmp);
kono
parents:
diff changeset
82 }